期望整数表达式:Bash

时间:2016-07-15 02:55:18

标签: bash shell

我读过堆栈溢出,我们需要在这里引用并添加引号,但ddn没有帮助。

array_length=${fileNames[@]}

COUNTER=0

while [ "$COUNTER" -lt "$array_length" ]; do

我仍然得到错误。请帮忙。对bash来说是全新的

1 个答案:

答案 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这样的大写变量,因为它们通常是为系统保留的。功能