我在UNIX中执行算术表达式时遇到问题

时间:2010-10-07 16:02:28

标签: bash unix math

我有以下脚本:

  #!/bin/sh
  r=3
  r=$((r+5))
  echo r

然而,我收到此错误:

第3行的语法错误:$ unexpected。

我不明白我做错了什么。我正在关注此http://www.unixtutorial.org/2008/06/arithmetic-operations-in-unix-scripts/

字母的在线指南

5 个答案:

答案 0 :(得分:3)

如果您使用bash,这听起来不错,但如果您正在使用其他shell,则可能不支持$((r+5))/bin/sh指向什么?您是否考虑将其替换为/bin/bash(如果可用)?

答案 1 :(得分:2)

shebang线是你的问题。 bash不是sh。将其更改为#!/bin/bash即可。您还需要echo $r而不是echo r

答案 2 :(得分:0)

如果您将8更改为echo r,它适用于我(打印echo $r)。你安装了什么版本的sh?什么是unix发行版?

答案 3 :(得分:0)

您可能需要尝试以下操作:

#!/bin/sh  
r=3  
r=$((r + 5))  
echo $r

答案 4 :(得分:0)

对于做数学(包括小数/浮点数),您可以使用awkbc/dc

awk -vr="$r" 'BEGIN{r=r+5;print r}'

echo "$r+5" | bc