如何回显变量和数字的总和?

时间:2011-01-20 18:04:07

标签: linux shell scripting

我有一个变量x=7,我想回复它加一个,比如echo ($x+1),但我得到了:

  

bash:语法错误接近意外   令牌`$ x + 1'

我该怎么做?

9 个答案:

答案 0 :(得分:26)

不需要expr,POSIX shell允许$(( ))进行算术评估:

echo $((x+1))

请参阅§2.6.4

答案 1 :(得分:3)

尝试使用双括号:

$ x=7; echo $(($x + 1))
8

答案 2 :(得分:3)

您还可以使用bc实用程序:

$ x=3;
$ echo "$x+5.5" | bc
8.5

答案 3 :(得分:1)

试     echo $(($ x + 1))

我认为只适用于3或更多版本的bash版本。

echo `expr $x + 1`

将是另一种解决方案

答案 4 :(得分:0)

只需使用expr命令:

$ expr $x + 1
8

答案 5 :(得分:0)

我们使用expr

echo `expr $x + 1`

答案 6 :(得分:0)

尝试这种方式:

echo $(( $X + 1 ))

答案 7 :(得分:0)

$ echo $(($x+1))
8

来自man bash

  

算术扩展

     

算术扩展允许评估算术        表达式和结果的替代。格式        算术扩展是:

    $((expression))
     

表达式被视为在双精度范围内        引号,但括号内的双引号不是        特别待遇。表达中的所有标记都经过        参数扩展,字符串扩展,命令替换,        和报价删除。算术替换可以嵌套。

     

评估是根据列出的规则进行的        在算术评估下面。如果表达是        无效,bash打印一条消息,表示失败,没有        替换发生。

答案 8 :(得分:0)

echo $((x + 1))的结果与echo $(($ x + 1))