我有两个要循环的数组。我正确地构造了它们,在进入 for 循环之前,我会回显它们以确保数组一切正常。但是当我运行脚本时,它会输出一个错误:
l<=: syntax error: operand expected (error token is "<="
我咨询了强大的谷歌,我知道它缺乏第二个变量,但我之前提到过我确实回应了这些值,一切似乎都很好。这是片段..
#!/bin/bash
k=0
#this loop is just for being sure array is loaded
while [[ $k -le ${#hitEnd[@]} ]]
do
echo "hitEnd is: ${hitEnd[k]} and hitStart is: ${hitStart[k]}"
# here outputs the values correct
k=$((k+1))
done
k=0
for ((l=${hitStart[k]};l<=${hitEnd[k]};l++)) ; do //this is error line..
let array[l]++
k=$((k+1))
done
for 循环中的变量已正确回显,但 for 循环不起作用..我错在哪里?
#正如 gniourf_gniourf 回答的那样:
“...在某个时刻,k 将达到 ${#hitEnd[@]} 的值,而这正是没有定义 hitEnd[k] 并扩展为空字符串的时候!砰!”
意思是错误输出不是在循环开始时显示,而是当 k 的值大于数组的索引时,指向数组不包含的索引...