unixshell脚本编写while循环
我想写一个脚本,用while循环打印10个数字。 我尝试了以下代码unixshell脚本编写while循环,shell,unix,while-loop,Shell,Unix,While Loop,我想写一个脚本,用while循环打印10个数字。 我尝试了以下代码 #!/bin/sh i=0 while [ $i -lt 10 ] do echo "$i" i='expr $i + 1' done 但是我得到了以下错误 sh: $i: unknown operand 有人能解释一下为什么它会引发错误吗?您希望在作业的右侧有反勾号,`,而不是单引号,。(或者更好的是,$(…),反勾号的现代替代品。)使用expr一点都不现代。POSIX标准化的数学语法是i=$((i+1
#!/bin/sh
i=0
while [ $i -lt 10 ]
do
echo "$i"
i='expr $i + 1'
done
但是我得到了以下错误
sh: $i: unknown operand
有人能解释一下为什么它会引发错误吗?您希望在作业的右侧有反勾号,
`
,而不是单引号,
。(或者更好的是,$(…)
,反勾号的现代替代品。)使用expr
一点都不现代。POSIX标准化的数学语法是i=$((i+1))
,而bash扩展方法只是(++i))
参见re:expr
、let
、$[…]
,以及各种其他古代构件。(这里没有介绍--expr
,但这是因为它根本不是bash的一部分;在bash中使用expr
时,它运行一个完全独立的程序,如/usr/bin/expr
,而不是shell的一部分)