我正在学习 Shell 脚本以获得我目前正在做的 IT 文凭。我正在尝试编写一个小脚本,将两个数字相加,如我们获得的教程之一所示。
echo "Enter two numbers"
read num1 num2
sum = 'expr $num1 + $num2'
echo "The sum is = $sum"
Run Code Online (Sandbox Code Playgroud)
但是,当我给它执行权限并运行脚本时,它给了我这个错误。
sum: =. No such file or directory.
sum: expr $num1 + $num2: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我尝试在 Ubuntu 和 Fedora 上运行它,但发生了同样的错误。谁能告诉我我在这里缺少什么?
Ulr*_*gel 44
首先,您必须摆脱分配的空间,例如
sum='expr $num1 + $num2'
Run Code Online (Sandbox Code Playgroud)
那么你必须改为'
a`
甚至更好$()
:
sum=$(expr "$num1" + "$num2")
Run Code Online (Sandbox Code Playgroud)
expr
您也可以直接在 shell 中进行计算,而不是使用:
sum=$((num1 + num2))
Run Code Online (Sandbox Code Playgroud)
您可能将反引号误读为该行中的单引号:
sum = 'expr $num1 + $num2'
Run Code Online (Sandbox Code Playgroud)
请参阅Greg 的 Wiki来使用$(...)
。
这按预期工作:
sum=$(expr "$num1" + "$num2")
Run Code Online (Sandbox Code Playgroud)
另请注意,等号(变量赋值)周围没有间隙。
归档时间: |
|
查看次数: |
427697 次 |
最近记录: |