步骤一:整数运算工具
1)使用expr命令
乘法操作应采用 * 转义,避免被作为Shell通配符;参与运算的整数值与运算操作符之间需要以空格分开,引用变量时必须加$符号。
首先定义变量X=1234,然后分别计算与78的加减乘除和求模运算结果:
1. [root@dyy ~]# X=1234 //定义变量X
2. [root@dyy ~]# expr $X + 78 //加法
3. 1312
4. [root@dyy ~]# expr $X - 78 //减法
5. 1156
6. [root@dyy ~]# expr $X \* 78 //乘法,操作符应添加\转义
7. 96252
8. [root@dyy ~]# expr $X / 78 //除法,仅保留整除结果
9. 15
10. [root@dyy ~]# expr $X % 78 //求模
11. 64
2)使用
[
]
或
[]或
[]或(())表达式
乘法操作*无需转义,运算符两侧可以无空格;引用变量可省略 $ 符号;计算结果替换表达式本身,可结合echo命令输出。
同样对于变量X=1234,分别计算与78的加减乘除和求模运算结果:
1. [root@dyy ~]# X=1234
2. [root@dyy ~]# echo $[X+78]
3. 1312
4. [root@dyy ~]# echo $[X-78]
5. 1156
6. [root@dyy ~]# echo $[X*78]
7. 96252
8. [root@dyy ~]# echo $[X/78]
9. 15
10. [root@dyy ~]# echo $[X%78]
11. 64
3)使用let命令
expr或
[
]
、
[]、
[]、(())方式只进行运算,并不会改变变量的值;而let命令可以直接对变量值做运算再保存新的值。因此变量X=1234,在执行let运算后的值会变更;另外,let运算操作并不显示结果,但是可以结合echo命令来查看:
1. [root@dyy ~]# X=1234
2. [root@dyy ~]# let y=X+22
3. [root@dyy ~]# echo $y
4. 1256
5. [root@dyy ~]# let X++; echo $X # X++(X=X+1)
6. [root@dyy ~]# let X--; echo $X # X--(X=X-1)
7. [root@dyy ~]# let X+=78 ; echo $X # X+=78(X=X+78)
8. [root@dyy ~]# let X-=78 ; echo $X # X-=78(X=X-78)
9. [root@dyy ~]# let X*=78 ; echo $X # X*=78(X=X*78)
10. [root@dyy ~]# let X/=78 ; echo $X # X/=78(X=X/78)
11. [root@dyy ~]# let X%=78 ; echo $X # X%=78(X=X%78)
步骤二:小数运算工具
1)bc交互式运算
先执行bc命令进入交互环境,然后再输入需要计算的表达式。以计算小数12.34与5.678的四则运算为例,相关操作如下:
1. [root@dyy ~]# bc
2. bc 1.06.95
3. Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
4. This is free software with ABSOLUTELY NO WARRANTY.
5. For details type `warranty'.
6. 12.34+56.78 //加法
7. 69.12
8. 12.34-56.78 //减法
9. -44.44
10. 12.34*56.78 //乘法
11. 700.66
12. 12.34/56.78 //除法
13. 0
14. quit //退出交互计算器
15. [root@dyy ~]#
2)bc非交互式运算
将需要运算的表达式通过管道操作交给bc运算。注意,小数位的长度可采用scale=N限制,除此以外也受参与运算的数值的小数位影响。以计算小数12.34与5.678的四则运算为例,相关操作如下:
1. [root@dyy ~]# echo 'scale=4;12.34+5.678' | bc
2. 18.018
3. [root@dyy ~]# echo 'scale=4;12.34*5.678' | bc
4. 70.0665
5. [root@dyy ~]# echo 'scale=4;12.34/5.678' | bc
6. 2.1733