在bash脚本中,下面的while循环应该打印1到4的数字。
但是这个结果是一个无限循环。
COUNT=1
while [ $COUNT < 5 ];
do
echo $COUNT
COUNT=$(($COUNT+1))
done
条件或语法是否有任何错误?(我想是的...
使用 -lt
而不是 <
:
COUNT=1; while [ $COUNT -lt 5 ]; do echo $COUNT; COUNT=$(($COUNT+1)); done
1
2
3
4
带有 [
的 BASH 语法无法识别>, <, <=, >=
等运算符。检查man test
。
更好的是在(( and ))
中使用算术处理:
COUNT=1; while (( COUNT < 5 )); do echo $COUNT; ((COUNT++)); done
或使用for loop
:
for (( COUNT=1; COUNT<5; COUNT++ )); do echo $COUNT; done