我知道这是一个非常愚蠢的问题,但我不知道如何在 bash 中做到这一点:
20 / 30 * 100
它应该是66.67
但 expr 说0
,因为它不支持浮动。
Linux 中的什么命令可以代替 expr 并执行此等式?
bc
将为您执行此操作,但顺序很重要。
> echo "scale = 2; 20 * 100 / 30" | bc
66.66
> echo "scale = 2; 20 / 30 * 100" | bc
66.00
或者,对于您的具体情况:
> export ach_gs=2
> export ach_gs_max=3
> x=$(echo "scale = 2; $ach_gs * 100 / $ach_gs_max" | bc)
> echo $x
66.66
无论您选择哪种方法,都可以将其作为一项功能纳入其中,让您的生活更轻松:
#!/bin/bash
function pct () {
echo "scale = $3; $1 * 100 / $2" | bc
}
x=$(pct 2 3 2) ; echo $x # gives 66.66
x=$(pct 1 6 0) ; echo $x # gives 16
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)