linux – Bash for循环数组,文件来自(*)只显示第一个元素

前端之家收集整理的这篇文章主要介绍了linux – Bash for循环数组,文件来自(*)只显示第一个元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将当前目录的文件放在一个数组中,并用这个脚本回显每个文件
#!/bin/bash

files=(*)

for file in $files
do
    echo $file
done

# This demonstrates that the array in fact has the values from (*)
echo ${files[0]}  ${files[1]} 

echo done

输出

echo.sh
echo.sh read_output.sh
done

有谁知道为什么只有第一个元素在for循环中打印?

解决方法

$files扩展到数组的第一个元素.
尝试echo $files,它只会打印数组的第一个元素.
由于同样的原因,for循环只打印一个元素.

要扩展到数组的所有元素,您需要将其写为${files [@]}.

迭代Bash数组元素的正确方法

for file in "${files[@]}"

猜你在找的Linux相关文章