- 使用expr、$[ ]、let等整数运算工具:进行四则运算及求模结果
- 使用bc实现小数运算操作h
1 整数运算工具
1.1 使用expr命令
乘法操作应采用 \* 转义,避免被作为Shell通配符;参与运算的整数值与运算操作符之间需要以空格分开,引用变量时必须加$符号。
首先随便定义变量比如a=10,b=20,然后计算a与b的加减乘除和求模运算结果:
[root@nsd2309 opt]# a=10
[root@nsd2309 opt]# b=20
[root@nsd2309 opt]# expr $a + $b
30
[root@nsd2309 opt]# expr $a - $b
-10
[root@nsd2309 opt]# expr $a \* $b #乘法运算,加'\'转义符
200
[root@nsd2309 opt]# expr $a / $b
0
[root@nsd2309 opt]# expr $b / $a
2
[root@nsd2309 opt]# expr $a % $b #求余
10
[root@nsd2309 opt]#
1.2 使用$[]或$(())表达式
乘法操作*无需转义,运算符两侧可以无空格;引用变量可省略 $ 符号;计算结果替换表达式本身,可结合echo命令输出。
对于变量a=100,b=10;分别计算a与b的加减乘除和求模运算结果:
[root@nsd2309 opt]# a=100
[root@nsd2309 opt]# b=10
[root@nsd2309 opt]# echo $[a+b]
110
[root@nsd2309 opt]# echo $[a-b]
90
[root@nsd2309 opt]# echo $[a*b]
1000
[root@nsd2309 opt]# echo $[a/b]
10
[root@nsd2309 opt]# echo $[a%b]
0
[root@nsd2309 opt]# echo $[5%3]
2
1.3 使用let命令
expr或[],(())方式只进行运算,并不会改变变量的值;
而let命令可以直接对变量值做运算再保存新的值。
常规写法 主流写法
let a=a+1 let a++ #变量a加1
let a=a-1 let a-- #变量a减1
let a=a+10 let a+=10 #变量a加10
let a=a-10 let a-=10 #变量a减10
let a=a*2 let a*=2 #变量a乘以2
let a=a/2 let a/=2 #变量a除以2
let a=a%3 let a%=3 #变量a除以3取余数
2 小数运算工具
2.1 bc交互式运算
先执行bc命令进入交互环境,然后再输入需要计算的表达式。
[root@nsd2309 opt]# bc
2.2 bc非交互式运算
将需要运算的表达式通过管道操作交给bc运算。
注意,小数位的长度可采用scale=N限制。
[root@nsd2309 opt]# echo "1.1+1" | bc
2.1
[root@nsd2309 opt]# echo "10/3" | bc
3
[root@nsd2309 opt]# echo "scale=2;10/3" | bc #scale可以定义结果是小数点后多少位
3.33