[: expr: 意外运算符

[: expr: 意外运算符

我正在按照 Edureka 视频学习 shell 脚本,但遇到了问题。

我运行了讲师第一次执行的这个简单脚本,一切运行良好,但现在我无法让它运行。

#!/bin/sh

a=0

while [ $a -lt 10 ]
do
        echo $a
        a=' expr $a + 1'
done

真的很奇怪。它第一次运行,但从那以后我收到两个错误,要么是意外的运算符,要么是参数太多。我已经尝试从头开始重写整个内容四次,除了第一次工作的部分之外,它是相同的。

我在网上读到这可能与 sh 与 bash 的语法有关,但将 shebang 更改为 bash 并使用 bash 执行并没有改变。

有谁知道我做错了什么?

顺便说一句,在 KDE Neon 上运行

PS 现在看起来像这样


#!/bin/sh

a=0
while [ $a -lt 10 ]
do
   echo $a
   a=`expr $a + 1`
done

答案1

问题出在线路上

a=' expr $a + 1'

它应该读

a=`expr $a + 1`

特别注意反引号字符。这告诉 shell 运行命令并将变量设置为输出。

该行中出现错误消息的原因[第二循环周围的时间$a是由于您的错误而导致的文字字符串expr $a + 1,并且这不是有效的表达式。

相关内容