shell 将文件名读入数组
我想得到一个文件列表,然后将结果读入一个数组,其中每个数组元素对应一个文件名。
shopt -s nullglob
array=(*)
array2=(file*)
array3=(dir/*)
如果没有匹配项,则nullglob选项会使数组为空。
以下将在当前目录中创建一个带ls输出的数组arr:
arr=( $(ls) )
虽然使用ls的输出根本不安全。
比ls更好更安全,你可以使用echo *:
arr=( * )
echo ${#arr[@]} # will echo number of elements in array
echo "${arr[@]}" # will dump all elements of the array
path="" # could set to any absolute path
declare -a array=( "${path}"/* )