扩展一个bash数组只会得到第一个元素。
- 论坛
- 扩展一个bash数组只会得到第一个元素。
19 浏览
匿名的
0 Comments
问题:扩展Bash数组只会给出第一个元素。
原因:使用$files
会将数组扩展为第一个元素。尝试使用echo $files
,它只会打印数组的第一个元素。同样的原因,for循环只会打印一个元素。
解决方法:为了扩展数组的所有元素,需要使用${files[@]}
。在Bash数组中正确迭代元素的方式如下:
for file in "${files[@]}"
需要注意的是,双引号也应该被视为这个习惯用法的必要部分;如果没有双引号,数组元素中的某些字符(空格、通配符等)可能会产生奇怪的效果。
如果你想将数组扩展为一个字符串,shellcheck更倾向于使用"${files[*]}"
。