我使用嵌套的 while 循环编写了一个简单的 shell 脚本,但我遇到了一个错误,我试图减少"b"值并递增"a"值



我正在尝试在每次迭代中增加和减少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

相关内容

最新更新