Linux 如何回显变量和数字的和?
我有一个变量Linux 如何回显变量和数字的和?,linux,shell,scripting,Linux,Shell,Scripting,我有一个变量x=7,我想把它加上一个,比如echo($x+1),但是我得到了: bash:语法错误接近意外 令牌“$x+1” 我该怎么做呢?试试看 echo$($x+1)) 我认为这只适用于3或更多版本的bash echo `expr $x + 1` 将是另一种解决方案只需使用expr命令: $ expr $x + 1 8 为此,我们使用expr: echo `expr $x + 1` 无需expr,POSIX shell允许$(())进行算术计算: echo $((x+1)) 请参见尝
x=7
,我想把它加上一个,比如echo($x+1)
,但是我得到了:
bash:语法错误接近意外
令牌“$x+1”
我该怎么做呢?试试看
echo$($x+1))
我认为这只适用于3或更多版本的bash
echo `expr $x + 1`
将是另一种解决方案只需使用
expr
命令:
$ expr $x + 1
8
为此,我们使用
expr
:
echo `expr $x + 1`
无需
expr
,POSIX shell允许$(())
进行算术计算:
echo $((x+1))
请参见尝试以下方法:
echo $(( $X + 1 ))
尝试使用双括号:
$ x=7; echo $(($x + 1))
8
从manbash
:
算术展开
算术扩展允许对算术进行评估
表达式和结果的替换。格式
对于算术展开式:
$((expression))
表达式被视为在双精度范围内
引号,但括号内的双引号不可用
特别对待。表达式中的所有标记都经过
参数扩展、字符串扩展、命令替换、,
和报价删除。算术替换可以嵌套
根据列出的规则执行评估
下面是算术评估。如果表达式是
无效,bash打印一条指示失败和否的消息
替代发生
您还可以使用
bc
实用程序:
$ x=3;
$ echo "$x+5.5" | bc
8.5
echo$((x+1))的结果与echo$($x+1))的结果相同。无需在vars前面加上
$
内部(())
,正如我在回答中提到的,$(())
实际上是兼容POSIX的,而不是bash'ism。您能对您的回答进行一点扩展吗?在外部观察者看来,这似乎缺乏背景。
$ x=3;
$ echo "$x+5.5" | bc
8.5