let 与 expr Shell运算比较 let强强胜出

Posted 记忆残留

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了let 与 expr Shell运算比较 let强强胜出相关的知识,希望对你有一定的参考价值。

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


[[email protected] ~]# 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

[[email protected] ~]# time sh let.sh 

real    0m0.875s
user    0m0.676s
sys     0m0.199s

通过上面两个例子,不言而喻,很明显 let以超高的优势获胜,let快expr 几十倍!

转自:http://yooma.blog.51cto.com/6965726/1187063/


以上是关于let 与 expr Shell运算比较 let强强胜出的主要内容,如果未能解决你的问题,请参考以下文章

linux Shell编程中常用的数学计算方法:expr,let,bc及其他。哪个效率更高一点?

shell中的let vs expr vs双括号算术

shell中数字计算方法(bc/expr/$(())/let/awk)

Linux命令:let

Linux拓展之使用 shell 进行数学运算

[shell基础]——算术运算