Shell脚本中 整数运算一般通过 let 和 expr 这两个指令来实现,如对变量 s 加 1 可以写作:let "s = $s + 1" 或者 s=`expr $s + 1‘
两者的写法没都很简单,但是性能的比较可以来实例给大家演示一下:

1、expr脚本与执行时间:

  

#!/bin/bash
s=0
while [ $s -lt 10000 ]
dos=`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 ]
dolet "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/

let 与 expr Shell运算比较 let强强胜出相关推荐

  1. linux下的shell运算(加、减、乘、除)

    关注微信公众号"虾米聊吧" 获取所有资料干货,每天更新技术干货,一起交流一起学习~ ((i=$j+$k))    等价于 i=`expr $j + $k` ((i=$j-$k))  ...

  2. Linux 减,linux下的shell运算(加、减、乘、除)

    linux下的shell运算(加.减.乘.除) 标签: linuxshell运算加减乘除 2014-03-12 16:25 15127人阅读 评论(0) 收藏 举报 分类: linux(17) ((i ...

  3. 使用 Shell 运算进行进制转换 16进制转10进制

    使用 Shell 运算进行进制转换 工作时候常常遇到一些问题,拿到的数字是16进制的,但是运算的时候是10进制的,shell可以很方便的处理这类的进制转换问题,一种情况是使用 Shell 运算把一个数 ...

  4. [转] linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决,Linux使用退格键时出现^H解决方法

    [转] linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决,Linux使用退格键时出现^H解决方法 参考文章: (1)[转] linux下shell ...

  5. java库expr,Shell - expr

    17.5 expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: expr argument operator argument expr也是一个手工命令行计数器. $expr 10 ...

  6. shell 阶乘,shell运算

    目录 1.计算10的阶乘 2.12,-13的原码,补码和反码 3.计算 1+2的结果,并将值赋给变量data, 然后计算 data+10的值,赋值给data2(要求:分别使用(()), let, ex ...

  7. java 运算顺序 从左到右_java – 表达式与运算符优先级的从左到右的评估.为什么从左到右的评估似乎胜出了?...

    你的表达从左到右评估是正确的.这是Java中的一般评估顺序(可能有例外). 我想你已经弄清楚到底发生了什么: > x从3递增到4,并取新值4 > 5被评估为5 > 4 * 5 = 2 ...

  8. shell 数学运算

    数学运算之 expr expr操作符对照表 比较大小,只能对整数进行比较,需要加空格,linux 保留关键字要转义 num1=30 num2=50 expr $num1 \> $num2 查看上 ...

  9. Linux有关Shell算数运算的用法补充笔记

    1.自增自减 Shell的自增自减和其他编程语言的语法基本上是一样的.主要包括四种:前置自增.前置自减.后置自增.后置自减.前置的原理是先修改变量的值,然后将变量的值传递出去.后置的原理是先将变量的值 ...

最新文章

  1. Java项目:(小程序)全套商城系统(spring+spring mvc+mybatis+layui+微信小程)
  2. 剑指offer:二位数组中的查找
  3. js html保存json,如何在json文件中存储jQuery或javascript变量?
  4. Matlab 线性规划问题模型代码
  5. VIM配置ActionScript
  6. Rusty String
  7. 晒晒今年淘宝网买的李宁鞋子
  8. 等式约束和不等式约束下的KKT条件求法
  9. 三类基于贪心思想的区间覆盖问题
  10. android系统源码的环境下用make来编译,Android源码编译系统入门
  11. 自建家庭私有云NAS——磁盘管理系统
  12. Dropthings - Ajax Web Portal
  13. 【易语言界面开发系列教程之(EX_UI使用系列教程(14)--EX组件(组合框))】
  14. 20162327WJH使用队列:模拟票务站台代码分析
  15. Shell If Else语句 数学运算 与 逻辑运算
  16. 豆瓣最新API-python
  17. 小白的25天CTF征程
  18. 英飞凌TC264之双核互斥
  19. 批处理中的for详解
  20. 《A NEURAL TEXT-TO-SPEECH MODEL UTILIZING BROADCAST DATA MIXED WITH BACKGROUND MUSIC》阅读笔记

热门文章

  1. 进程、线程、进程池、进程三态、同步、异步、并发、并行、串行
  2. 分库分表之 Sharding-JDBC 中间件,看这篇真的够了!
  3. 总结:一些关于 CPU 的基本知识
  4. 面试必备:一个秒杀系统的设计思考
  5. 微服务架构之「 配置中心 」
  6. 复旦大学邱锡鹏教授:一张图带你梳理深度学习知识脉络
  7. 加性注意力机制、训练推理效率优于其他Transformer变体,这个Fastformer的确够快...
  8. 谁说GPT只擅长生成?清华研究力证:GPT语言理解能力不输BERT
  9. 13个Pandas奇技淫巧
  10. 每年“骗”马云10亿,被骂大忽悠,他却当选中国工程院院士?