1
在bash中,我需要將給定目錄的所有文件名放到一個數組中。此外,我需要每個文件都是數組中的一個元素,以便如果我的目錄包含3個文件:file1.txt
,file2.txt
和file3.txt
我的數組看起來像這樣。把一個目錄中的所有文件名放到一個數組中
echo $arr
{file1.txt, file2.txt, file3.txt}
在bash中,我需要將給定目錄的所有文件名放到一個數組中。此外,我需要每個文件都是數組中的一個元素,以便如果我的目錄包含3個文件:file1.txt
,file2.txt
和file3.txt
我的數組看起來像這樣。把一個目錄中的所有文件名放到一個數組中
echo $arr
{file1.txt, file2.txt, file3.txt}
用var=(...)
創建一個數組變量。當前目錄中所有文件的glob爲*
。總之:
files=(*)
echo "${files[@]}"
你也可以遍歷數組了:
for file in "${files[@]}"; do
echo "$file"
done
或訪問各個元素:
echo "${files[0]}"
echo "${files[1]}"
echo "${files[2]}"
注意合理使用雙引號的。那些確保帶有空格和其他特殊字符的文件被正確處理。
最簡單的辦法是使用:
shopt -s nullglob dotglob
files=(*)
這是很好的前'文件中設置'禁用了javascript -s nullglob' =(*)'使陣列沒有最終得到一個'*'元素在空目錄上。 – codeforester