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