星星峡的风
作者星星峡的风·2018-07-09 11:18
技术支持工程师·福建新大陆软件有限公司

Linux shell下的数值运算

字数 766阅读 1454评论 1赞 2

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 条评论

wuwenpinwuwenpin软件开发工程师南京
2018-07-11 10:25
好东西,学习了
Ctrl+Enter 发表

相关文章

相关问题

相关资料

X社区推广