first,抛自己引板砖。
因为某些统计需要,我会在shell脚本里用到数值运算,其实只是些加减乘除,那么影响我的只有精度啦。
shell下的几种数值运算方法:
1.expr:
expr是只能进行整数运算的运算式,这里只讨论expr的数值运算,其实expr还可以处理字符串。
2.bc:
任意精度的计算语言,有内置的数学库,支持进制转换。
还有一种叫dc,大同小异,感兴趣可以自己试试。
3.awk:
万能的awk,支持数值运算,还有一些简单函数
4.其他:
$(()) 或 [] ,和expr一样,只用来做点简单的整数运算
示例如下:
#!/bin/sh
a=10
b=2
c=5.6
d=4.8
num1=`expr $a + $b`
num2=$(( $a + $b ))
#num3=`expr $a + $c`
#num3=$(( $a + $c ))
num3=$(echo "scale=5;$a + $c"|bc -l)
num4=`expr $b * $c`
num5=$(echo "scale=5;$b * $c"|bc -l)
num6=`expr $c / $b`
num7=$(echo "scale=5;$c / $b"|bc -l)
num8=$(echo "scale=2;s(2/3*a(1))"|bc -l)
num9=`awk 'BEGIN{printf "%d\\n",'$c'/'$b'}'`
num10=`awk 'BEGIN{printf "%0.4f\\n",'$c'/'$b'}'`
echo $num1
echo $num2
echo $num3
echo $num4
echo $num5
echo $num6
echo $num7
echo $num8
echo $num9
echo $num10
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞2
添加新评论1 条评论
2018-07-11 10:25