适用于 Bash 脚本的最佳浮点解决方案?

适用于 Bash 脚本的最佳浮点解决方案?

我使用 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

相关内容