未在bash中填充/分配数组

时间:2017-11-09 12:26:07

标签: arrays bash

shopt -s nullglob
array=(~/unsorted_files/*.jpg)

for ((i=0; i<${#arr[@]}; i++)); do

echo "${array[$i]}"

done 

附上我试图用来解析目录中的jpg文件然后打印它们的代码。通过shell检查运行代码,我被告知虽然数组已被引用但尚未分配。

我很困惑。我的理解是=是赋值运算符,因此,我假设(错误地看来)我将所有具有jpg文件类型的文件分配给数组。

1 个答案:

答案 0 :(得分:2)

for循环计数器检查中有拼写错误。您已填充array,但在循环中检查arr。修复如下

for ((i=0; i<${#array[@]}; i++)); do

由于虚假表达式评估,即使数组可能由jpeg文件填充,也不会输入循环体。