1.bc
常用計算工具,而且支援浮點運算:
[root@web01 shell]# echo 1+1 | bc
2
浮點數精度問題未解決
[root@web01 shell]# echo "1.2*1.2" | bc
1.4
[root@web01 shell]# echo "scale=2;1.2*1.2" | bc
1.44
[root@web01 shell]# echo "5.0/3.0" | bc
1
[root@web01 shell]# echo "scale=2;5.0/6.0"|bc
.83
2.expr
不支援浮點運算,注意運算符左右都有空格,使用乘号時,必須用反斜線屏蔽其特定含義
[root@web01 shell]# expr 10 + 10
20
[root@web01 shell]# expr 1500 + 900
2400
[root@web01 shell]# expr 30 / 3
10
[root@web01 shell]# expr 30 / 3 / 2
5
[root@web01 shell]# expr 30 \* 3
90
3.$(())
同expr,不支援浮點數運算
[root@web01 shell]# echo $((1+1))
[root@web01 shell]# echo $((2*3))
6
[root@web01 shell]# echo $((6/2))
3
[root@web01 shell]# echo $((6/5))
4.let
不支援浮點數運算,而且不支援直接輸出,隻能指派
[root@web01 shell]# let a=10+10
[root@web01 shell]# echo $a
[root@web01 shell]# let b=50/5
[root@web01 shell]# echo $b
[root@web01 shell]# let c=6*5
[root@web01 shell]# echo $c
30
[root@web01 shell]# let c=6/5
5.awk
普通的運算:
[root@web01 shell]# echo|awk '{print(1+1)}'
[root@web01 shell]# echo|awk '{print(1/2)}'
0.5
[root@web01 shell]# echo|awk '{print(1/3)}'
0.333333
[root@web01 shell]# echo|awk '{print(3*5)}'
15
控制精度(printf):
[root@web01 shell]# echo | awk '{printf("%.2f \n",1/2)}'
[root@web01 shell]# echo | awk '{printf("%.4f \n",1/3)}'
0.3333
傳遞參數:
[root@web01 shell]# echo | awk -v a=5 -v b=6 '{printf("%.4f \n",a/b)}'注:該方法a,b不需加$符
0.8333
[root@web01 shell]# a=5
[root@web01 shell]# b=6
[root@web01 shell]# echo|awk "{print($a/$b)}"注:該方法需在大括号外打雙引号
0.833333
本文轉自 fxl風 51CTO部落格,原文連結:http://blog.51cto.com/fengxiaoli/1952187