“本文介绍一下shell中数学运算expr命令以及shell内嵌的bc计算器如何使用。”
不扯虚的,往下看。
01
—
expr使用
expr表达式一般有两种方法:
1、expr $num1 operator $num2
2、$(($num1 operator $ number))
关于上面的operator操作符,主要有以下几种:
除此以外,还有加、减、乘、除、余的运算符。由于上面有些运算符需要转义,所以在实际使用的时候需要加上转义字符\,总结如下:
比如,我们写个例子,用户输入一个数num,求1+2+3+...+num的结果。
参考:其中,$?的作用是获取命令的返回值。当输入num为整数时,num+1返回0,否则返回其他数。所以首先判断$num + 1的结果是否为0。如果为0,则进一步判断$num的值是否大于0。如果是正数,则进行for循环累加。
02
bc使用
bc是bash内嵌的计算器,可以支持指定精度。一般用scale=2这样来定义精确到小数点后2位,默认为0。
bc可以支持加、减、乘、除、余、指数运算。
比如:定义两个变量num1=10,num2=5
首先执行bc命令,然后执行 num3=$num1/num2 计算出两者的结果。
当然,也可以通过重定向来计算。
比如:输入两个数num1和num2
可以这样实现:
read -p "num1: " num1
read -p "num2: " num2
num3=`echo "scale=4;$num1/$num2" | bc`
echo "$num1 / $num2 = $num3"