我正在测试一个简单的程序shell(sh)。Shell sh,语法while(condition)
我正在使用while循环,但它显示一个错误。
./essai.sh:5号线:测试:参数太多
这是代码:
#!/bin/sh
numero=1
max=3
while test [ $numero -le $max ]
do
ping -c 2 127.0.0.1
numero=$(($numero + 1))
printf $numero
sleep 5
done
我正在测试一个简单的程序shell(sh)。Shell sh,语法while(condition)
我正在使用while循环,但它显示一个错误。
./essai.sh:5号线:测试:参数太多
这是代码:
#!/bin/sh
numero=1
max=3
while test [ $numero -le $max ]
do
ping -c 2 127.0.0.1
numero=$(($numero + 1))
printf $numero
sleep 5
done
条件的说法是错误 变化情况从
while test [ $numero -le $max ]
至
while [ $numero -le $max ]
测试关键字已被删除:
while [ $numero -le $max ]
你也知道
for numero in $(seq 1 3) ; do echo $numero ; done
“[]” 的意思是 “试验”,所以,你可以该行更改为
while test $numero -le $max
或
while [ $numero -le $max ]
顺便说一句:“[]”和条件表达式之间的空格是必要的。
它对空间非常敏感......我之前测试过这个解决方案,但我没注意空间。 无论如何,谢谢你,它现在的作品! –
或者直接删除方括号:'while while test $ numero -le $ max' – cfromme
或者使用括号将比较看起来更自然:'while((numero <= max))'.... OOPS,刚才注意到:我们在这里有Posix Shell,而不是bash。在这种情况下,这种替代方法不起作用。 – user1934428