我正在按照 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
,并且这不是有效的表达式。