虽然shell脚本中的循环得到错误:参数太多

时间:2015-03-23 06:27:08

标签: unix sh

我试图运行一个非常简单的脚本来读取用户的输入并不断循环。但是它们显示错误[:参数太多

i=0
while [ $i -le 5 ]
do
echo $i
i='expr $i + 1'
done

2 个答案:

答案 0 :(得分:2)

错误是您使用单引号而不是后引号进行命令替换。换句话说,它应该是i=`expr $i + 1`而不是i='expr $i + 1'

另外,@ Pankrates指出,使用等效表达式i=$(expr $i + 1)可能更具可读性。如果你所阅读的任何材料的作者都使用了这种形式,那么至少可以说你的麻烦得到了避免,这似乎是可以肯定的。

答案 1 :(得分:2)

改变''急性(`)。我测试过它工作正常

i=0
while [ $i -le 5 ]
do
echo $i
i=`expr $i + 1`
done