我读过堆栈溢出,我们需要在这里引用并添加引号,但ddn没有帮助。
array_length=${fileNames[@]}
COUNTER=0
while [ "$COUNTER" -lt "$array_length" ]; do
我仍然得到错误。请帮忙。对bash来说是全新的
答案 0 :(得分:6)
array_length=${fileNames[@]}
应该是
array_length=${#fileNames[@]}
对于预期的行为,你的while循环应该是:
while [ "$COUNTER" -lt "$array_length" ]
do
.
#do something
.
((COUNTER++)) # Equivalent to COUNTER=COUNTER+1
done
${fileNames[@]}
扩展到整个数组,而前缀为#
会为您提供元素数量。
的图片的标题说明强>:
1。不要忘记在循环中增加COUNTER
。
2。尽量避免像COUNTER
这样的大写变量,因为它们通常是为系统保留的。功能