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

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

我想将当前目录的文件放在一个数组中,并用这个脚本回显每个文件: #!/bin/bashfiles=(*)for file in $filesdo echo $filedone# This demonstrates that the array in fact has the values from (*)echo ${files[0]} ${files[1]} ec

我想将当前目录的文件放在一个数组中,并用这个脚本回显每个文件:

#!/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[@]}"

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/zhonghe/fwq/linux/20201215/13483.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部