Shell腳本中 整數運算一般通過 let 和 expr 這兩個指令來實現,如對變量 s 加 1 可以寫作:let "s = $s + 1" 或者 s=`expr $s + 1‘
兩者的寫法沒都很簡單,但是性能的比較可以來實例給大家演示一下:
1、expr腳本與執行時間:
#!/bin/bash s=0 while [ $s -lt 10000 ] do s=`expr $s + 1` echo $s >>/dev/null 2>&1 done [root@xaosa ~]# time sh expr.sh real 0m50.776s user 0m11.528s sys 0m39.601s
2、let腳本與執行時間:
#!/bin/bash s=0 while [ $s -lt 10000 ] do let "s = $s + 1" echo $s >>/dev/null 2>&1 done [root@xaosa ~]# time sh let.sh real 0m0.875s user 0m0.676s sys 0m0.199s
通過上面兩個例子,不言而喻,很明顯 let以超高的優勢獲勝,let快expr 幾十倍!
轉自:http://yooma.blog.51cto.com/6965726/1187063/