Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何回显变量和数字的和?_Linux_Shell_Scripting - Fatal编程技术网

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