分类: LINUX
2016-11-29 10:37:47
shell中的小数运算
最近在做MySQL性能指标监控,通过shell脚本计算innodb buffer pool的命中率。
编写脚本时,遇到了bash小数计算的瓶颈。
网上查找,发现bash不支持小数运算,小于0的结果输出都为0。
# 不支持小数预算
a=$[1+0.2]
-bash: 1+0.2: syntax error: invalid arithmetic
operator (error token is ".2")
#小于0的结果输出都为0
# a=$[779063181/9968741715*100]
# echo $a
0
解决办法:使用bc进行浮点预算。
其中,scale表示小数点后面有3位
# a=`echo "scale=2;779063181/9968741715"|bc`
# echo $a
.07