1. expr命令:处理部分数学运算,如下:
expr 1 + 5
对于特殊字符,需要使用转义字符进行标注
expr 1 \* 5
shell脚本中使用expr
var1=5
var2=6
var3=$(expr $var1 + $var2)
echo $var3
2.使用方括号 []
var1=$[1 + 3]
var2=$[2 + 5]
var3=$[$var1 * $var2]
不需要使用转义字符
但是数学运算符[]只允许整数运算,如果遇到浮点数,需要以下运算方式
3.浮点数运算
最常用是使用内建的bash计算器,即bc;
在shell提示符下通过bc命令访问bash计算器
bc
12 * 1.2
浮点运算是由scale这个内建变量控制位数的,如果不设置scale的位数,可能无法得到期望值
bc -q
3.2 / 5
结果0
scale=2
结果
.64
在脚本中
var1=3
var2=4.3
var3=$(echo "scale=4;$var2 / $var1" | bc)
如果在较长脚本中,可以使用内联输入重定向,EOF标示内联重定向数据的起始
var1=3
var2=4.3
var3=$(bc << EOF
scale=4
var4 = ( $var1 * $var2)
var5 = ($var1 / $var2)
EOF
)
echo $var4
echo $var5