我使用 bash 计算器进行浮点计算,并且必须在脚本中使用输入重定向和反引号(`)符号。
由于普通括号$[math operation]
和 expr 不支持浮点计算。除了在脚本中使用 bc 之外,还有其他方法可以直接进行浮点计算吗?我不喜欢脚本中不必要的输入重定向和反引号 (`) 符号。
#!/bin/bash
x=5
y=6
z=3.3
result=`bc <<end
scale=3
temp_divide=($x / $y)
temp_divide * $z
end`
echo "final result is $result"
答案1
Bash 不支持浮点运算,因此你只能使用 bc 来实现。你可以使用类似以下的自写辅助函数float_eval
,这使得使用 bc 作为内联计算器变得更容易一些。
如果你不必使用 bash,你也可以考虑使用嘚, 哪个支持浮点运算。例子:
evnu@centraldogma ~
% ((val = 1.0))
evnu@centraldogma ~
% ((val = 2.2))
evnu@centraldogma ~
% echo $val
2.2000000000
evnu@centraldogma ~
% ((val += 2.2))
evnu@centraldogma ~
% echo $val
4.4000000000