使用bash中包含浮点的多个变量执行算术运算

时间:2016-03-30 10:42:16

标签: bash floating-point

我在bash中编写脚本,我需要在此代码中添加第三个变量:Res=$(echo $VAR1-$VAR2|bc)或此代码:Res=$(bc <<< "$VAR1-$VAR2")(两者都允许我计算十进制数),i需要进行以下计算:Res=$VAR3-($VAR1-$VAR2)

1 个答案:

答案 0 :(得分:4)

除非我遗漏了某些内容,否则您似乎只需要这样做:

Res=$(bc <<< "$VAR3-($VAR1-$VAR2)")

这三个变量在shell中展开并传递给bc,后者执行计算。这与两个变量的示例没有什么不同。

整个命令的双引号很重要,因为它们阻止shell解释()。你的两个变量的例子是有效的,因为字符串只包含&#34; safe&#34;数字和-之类的字符(没有空格或对shell有重要意义的其他字符)。

一般情况下,当字符串包含变量时,应始终使用单引号引用字符串和双引号。

如果需要,您可以使用echo传递字符串:

Res=$(echo "$VAR3-($VAR1-$VAR2)" | bc)

使用<<<更好,因为它不使用管道,因此不会创建任何子壳。同样,这里需要双引号。