let使用方法
root@172-18-21-195:/tmp# n1=5 root@172-18-21-195:/tmp# n2=10 root@172-18-21-195:/tmp# let result=n1+n2 root@172-18-21-195:/tmp# echo $result 15 root@172-18-21-195:/tmp# let n1++ root@172-18-21-195:/tmp# echo $n1 6 root@172-18-21-195:/tmp# let n1-- root@172-18-21-195:/tmp# echo $n1 5 root@172-18-21-195:/tmp# let n1+=6 root@172-18-21-195:/tmp# echo $n1 11
$[] 来计算
root@172-18-21-195:/tmp# result2=$[ n1 + n2 ] root@172-18-21-195:/tmp# echo $result 15
$(()) 计算
root@172-18-21-195:/tmp# echo $(( 1+2 )) 3 root@172-18-21-195:/tmp# echo $((1-9)) -8
expr 来计算
root@172-18-21-195:/tmp# result=`expr 10-3` # 运算符前后没有空格间隔,导致无法运算 root@172-18-21-195:/tmp# echo $result 10-3 root@172-18-21-195:/tmp# result=`expr 10 - 3` root@172-18-21-195:/tmp# echo $result 7 root@172-18-21-195:/tmp# result=$(expr $n1 + 4) root@172-18-21-195:/tmp# echo $result 15 root@172-18-21-195:/tmp# echo $n1 11
bc 来计算
root@172-18-21-195:/tmp# echo "4*12*0.3" | bc 14.4 root@172-18-21-195:/tmp# result2=`echo "4*12*0.3" | bc` root@172-18-21-195:/tmp# echo $result2 14.4
通过scale来控制精度
root@172-18-21-195:/tmp# echo "scale=3;3.1415926*7/2.1234987" | bc 10.356 root@172-18-21-195:/tmp# echo "scale=30;3.1415926*7/2.1234987" | bc 10.356092141709340344780997511324
10进制与2进制转换
root@172-18-21-195:/tmp# n=100 root@172-18-21-195:/tmp# echo "obase=2;$n" | bc 1100100 root@172-18-21-195:/tmp# n2=1100100 root@172-18-21-195:/tmp# echo "obase=10;ibase=2;$n2" | bc 100