我读了堆叠溢出,我们需要在这里引用并添加引号,但它没有帮助.
array_length=${fileNames[@]}
COUNTER=0
while [ "$COUNTER" -lt "$array_length" ]; do
Run Code Online (Sandbox Code Playgroud)
我仍然得到错误.请帮忙.对bash来说是全新的
array_length=${fileNames[@]}
Run Code Online (Sandbox Code Playgroud)
本来应该
array_length=${#fileNames[@]}
Run Code Online (Sandbox Code Playgroud)
对于预期的行为,您的while循环应该是:
while [ "$COUNTER" -lt "$array_length" ]
do
.
#do something
.
((COUNTER++)) # Equivalent to COUNTER=COUNTER+1
done
Run Code Online (Sandbox Code Playgroud)
${fileNames[@]}扩展到整个数组,同时为它添加前缀,#为您提供元素数量.
旁注:
1.不要忘记COUNTER在循环时增加内部.
2.尝试避免大写变量,例如COUNTER它们通常为系统保留.