我想将当前目录的文件放在一个数组中,并使用此脚本回显每个文件:
#!/bin/bash files=(*) for file in $files do echo $file done # This demonstrates that the array in fact has more values from (*) echo ${files[0]} ${files[1]} echo done
输出:
echo.sh echo.sh read_output.sh done
有谁知道为什么在此for循环中仅打印第一个元素?
$files扩展到数组的第一个元素。试试看echo $files,它只会打印数组的第一个元素。由于相同的原因,for循环仅打印一个元素。
$files
echo $files
要扩展到数组的所有元素,您需要编写为${files[@]}。
${files[@]}
迭代Bash数组元素的正确方法:
for file in "${files[@]}"