我试图在while循环中获取数组,并且还需要更新数组中的值。
以下是我试过的代码。我收到此错误[0: command not found
#!/bin/bash
i=0
while [$i -le "{#myarray[@]}" ]
do
echo "Welcome $i times"
i= $(($i+1)))
done
我该如何解决这个问题?
答案 0 :(得分:13)
在[
之后需要一个空格,并且在作业中=
之前或之后没有空格。 $(($i+1)))
将尝试执行((...))
表达式的输出,我确信这不是您想要的。此外,您在数组名称前缺少$
。
通过纠正这些问题,你的while循环将是:
#!/bin/bash
i=0
while [ "$i" -le "${#myarray[@]}" ]
do
echo "Welcome $i times"
i=$((i + 1))
done
i=$((i + 1))
也可以写为((i++))
[ ... ]
另见: