| Quote: |
|
$ i=0; |
用shell的内置命令查看各个命令的类型如下:
| Quote: |
|
$ type type |
let i++;
i=$(expr $i + 1)
i=$(echo $i+1|bc)
i=$(echo "$i 1" | awk '{printf $1+$2;}')
说明:time命令可以用来统计命令执行时间,这部分时间包括总的运行时间,用户空间执行时间,内核空间执行时间,它通过ptrace系统调用实现。
总结:通过上面的比较,我们发现(())的运算效率最高。而let作为shell内置命令,效率也很高,但是expr,bc,awk的计算效率就比较低。所以,在shell本身能够完成相关工作的情况下,建议优先使用shell本身提供的功能。但是shell本身好像无法完成浮点运算,所以就需要外部命令的帮助。
补充:let,expr,bc都可以用来求模,运算符都是%,而let和bc可以用来求幂,运算符不一样,前者是**,后者是^。例如:
本文对比了Shell内置命令let、expr、bc、awk在处理数学运算时的效率,并指出let命令因其为内置命令而表现出高效性。此外,文章还介绍了如何利用time命令来评估命令执行时间,强调在可能的情况下应优先使用Shell自身提供的功能。
1007

被折叠的 条评论
为什么被折叠?



