我正在尝试在每次迭代中增加和减少while循环中的变量值。
我已经提供了下面我得到的错误。
******0 ./test1.sh: line 8: [: expr $b - 1: integer expression expected
./test1.sh: line 4: [: expr $a + 1: integer expression expected******
while [ "$a" -le 10 ]
do
b="$a"
while [ "$b" -ge 0 ]
do
echo -n "$b "
b='expr $b - 1'
done
a='expr $a + 1'
done
您错误地使用单引号来包装expr $a + 1
。这样做,$a
将不会扩展到a
的值。双引号会让$a
展开。
问题的简单演示:在终端上,输入a=1
并按输入,然后输入echo 'a is $a'
并按再次输入,可以看到终端打印的是字面上的a is $a
。然后再执行一次,但这次命令是echo "a is $a"
,您将看到终端打印a is 1
。