在Bash shell中,可以利用let、(( ))、[]执行基本的算术操作,在高级操作时,使用expr和bc两个工具
1、let
[root@client02 ~]# no1=4
[root@client02 ~]# no2=5
[root@client02 ~]# let result=no1+no2
[root@client02 ~]# echo $result
9
[root@client02 ~]# let no1++
[root@client02 ~]# echo $no1
5
[root@client02 ~]# let no1+=3
[root@client02 ~]# echo $no1
8
[root@client02 ~]#
2、[]方法
[root@client02 ~]# reslut=$[ no1 + no2 ]
[root@client02 ~]# echo $reslut
13
[root@client02 ~]# reslut=$[ no1 + 2 ]
[root@client02 ~]# echo $reslut
10
[root@client02 ~]#
3、(())方法
[root@client02 ~]# result=$((no1 + 6))
[root@client02 ~]# echo $no1
[root@client02 ~]# 1
1
[root@client02 ~]# echo $result
7
[root@client02 ~]#
4、expr方法
[root@client02 ~]# result=`expr 3 + 4`
[root@client02 ~]# echo $result
7
[root@client02 ~]# result=`expr $no1 + 4`
[root@client02 ~]# echo $result
5
[root@client02 ~]#
5、bc可以执行浮点操作以及一些高级函数,通过stdin传递给bc,其他参数可以置于要执行的具体操作之前,同时以分号作为界定符
[root@client02 ~]# echo "4.5*3" | bc
13.5
[root@client02 ~]# no=2
[root@client02 ~]# result=`echo "$no * 3.3" | bc`
[root@client02 ~]# echo $result
6.6
[root@client02 ~]#
设置小数精度
[root@client02 ~]# echo "scale=2;8/3" | bc
2.66
[root@client02 ~]#
进制转换
[root@client02 ~]# no=100
[root@client02 ~]# echo "obase=2;$no"|bc
1100100
[root@client02 ~]# no=10001010
[root@client02 ~]# echo "obase=10;ibase=2;$no"|bc
138
[root@client02 ~]# no=123AB
[root@client02 ~]# echo "obase=10;ibase=16;$no"|bc
74667
[root@client02 ~]#
计算平方和平方根
[root@client02 ~]# echo "sqrt(100)"|bc
10
[root@client02 ~]# echo "3^3"|bc
27
[root@client02 ~]#