`

shell中let和expr用法及性能比较

阅读更多

1、expr计算整数变量值

格式 :expr arg

例子:计算(2+3)×4的值
1、分步计算,即先计算2+3,再对其和乘
4
s=`expr 2 + 3`
expr $s \* 4
2
、一步完成计算:
expr  `expr 2 + 3 `  \* 4
说明:
运算符号和参数之间要有空格分开;
通配符号(*),在作为乘法运算符时要用\、“”、‘’符号修饰
:expr 3 \* 2         expr 3 “*” 2       expr 3 ‘*’ 2 
 `(反引号)与键盘上的~同一个键上的符号 
 
[fsy@localhost ~]$ s=`expr 2 + 3`
[fsy@localhost ~]$ echo $s
5
[fsy@localhost ~]$ expr $s \* 4
20
[fsy@localhost ~]$ expr `expr 2 + 3` \* 4
20
[fsy@localhost ~]$ expr 2 \* 3
6
[fsy@localhost ~]$ expr 2 "*" 3
6
[fsy@localhost ~]$ expr 2 '*' 3
6
[fsy@localhost ~]$ expr 2 * 3
expr: 语法错误
[fsy@localhost ~]$
 
2、let命令

格式:let arg1 [arg2 ......]

说明:

与expr命令相比,let命令更简洁直观
 [ ]表示可以有多个参数,arg n (n=1,2…)
 运算符与操作数据之间不必用空格分开,但表达式与表达式之间必须要用空格分开
当运算符中有<、>、&、|等符号时,同样需要用引号(单引号、双引号)或者斜杠来修饰运算符
例子:计算(2+3)×4的值
[fsy@localhost ~]$ let s=(2+3)*4
[fsy@localhost ~]$ echo $s
20
[fsy@localhost ~]$
 
3、expr与let性能比较
1、expr脚本与执行时间:
  1. #!/bin/bash
  2. s=0
  3. while [ $s -lt 10000 ]
  4. do
  5.        s=`expr $s + 1`
  6.        echo $s >>/dev/null 2>&1
  7. done
  8. [root@xaosa ~]# time sh expr.sh 

    real    0m50.776s
    user    0m11.528s
    sys     0m39.601s
2、let脚本与执行时间:

  1. #!/bin/bash
  2. s=0
  3. while [ $s -lt 10000 ]
  4. do
  5.        let "s = $s + 1"
  6.        echo $s >>/dev/null 2>&1
  7. done
  8. [root@xaosa ~]# time sh let.sh 
  9. real    0m0.875s
    user    0m0.676s
    sys     0m0.199s

通过上面两个例子,不言而喻,很明显 let以超高的优势获胜,let快expr 几十倍!
 
本文来自:http://blog.csdn.net/fansongy/article/details/6724228
http://yooma.blog.51cto.com/6965726/1187063
分享到:
评论

相关推荐

    从0开始学习Shell高级编程视频课程第二部分1

    总的来说,这个课程将帮助学习者熟练掌握Shell脚本中的变量操作,特别是数值计算的各种方法,包括基本的双括号运算、let命令、expr命令,以及更复杂的bc和typeset工具。这些知识对于编写高效、灵活的Shell脚本和管理...

    Shell编程范例之数值运算-TinyLab原创.

    比如,对某个数加1可以使用多种不同的方法,包括Shell内置的算术扩展$((i++)),let命令,expr命令,以及awk命令等。文档中也介绍了如何通过while循环实现从1加到某个特定数值的过程。这些基础实例对于初学者来说非常...

    [Ubuntu.Linux.基础视频教程].4.3.Shell.类型转换

    3. 数字转字符串:虽然在Shell中,数字可以直接当作字符串使用,但如果你想明确地将数字转换为字符串,可以使用`printf`命令,如`printf "%s\n" $number`。 4. 数组操作:如果你有一个字符串,想要将其拆分为数组,...

    linux运维学习笔记:Shell变量的数值运算.pdf

    let命令也是Shell中进行算术运算的一种方式,其用法为let后跟赋值表达式。例如:let i=i+1,与双括号的运算类似,let命令也是用于整数运算。 expr命令是一个手工命令行计算器,它不仅可以处理整数运算,还可以处理...

    Linux Shell脚本系列教程(五):数学运算.docx

    Linux Shell脚本系列教程(五):数学运算 本文主要介绍了 Linux Shell 脚本...本文涵盖了 Linux Shell 脚本中数学运算的三种方法:使用 let、(())和[]进行算术运算、使用 expr 进行算术运算、使用 bc 进行算术运算。

    shell讲义.pdf

    Shell脚本中还可以使用以下命令或结构来操作和利用变量: - `echo`:用于输出变量的值。 - `export`:用于导出环境变量,使其可以在子进程中使用。 - `readonly`:用于声明只读变量。 - `unset`:用于取消变量的...

    Shell脚本-珍藏版

    其他运算工具如let、expr和bc,以及Shell括号的用途总结,为复杂算术运算提供了支持。 流程控制是编程中不可或缺的一部分,Shell脚本提供了if语句、for语句、while语句、case语句和select语句等控制结构,帮助学习...

    跟老男孩学Linux运维:Shell编程实战

    / 554.4 Shell特殊扩展变量的知识与实践 / 60第5章 变量的数值计算实践 / 655.1 算术运算符 / 655.2 双小括号“(())”数值运算命令 / 665.3 let运算命令的用法 / 735.4 expr命令的用法 / 755.5 bc命令的用法 ...

    强力推荐Shell 脚本教程 ppt

    - **算术运算**:可以使用内置命令`expr`或者`let`来进行算术运算。 - **示例**: ```bash a=5 b=3 c=$((a + b)) echo $c # 输出:8 ``` - **算术扩展**:使用`$((expression))`进行更复杂的算术计算。 - **...

    Linux下shell里的算术运算[归类].pdf

    在Linux系统中,Bash Shell提供了多种方式进行算术运算,这对于编写脚本和进行自动化任务是至关重要的。本文将详细讲解Linux Shell中的四种算术运算方法,并给出相应的示例。 1. 使用`expr`外部程序: `expr`是...

    Shell 运算操作

    Shell脚本中的比较运算主要用于条件判断,主要包括整数比较和字符串比较。 1. **整数比较** - `==` 或 `-eq`:等于 - `!=` 或 `-ne`:不等于 - `或 `-lt`:小于 - `&gt;` 或 `-gt`:大于 - `或 `-le`:小于或...

    shell编程语法和实例

    1. **数学运算**: 使用 `expr` 或者 `let` 进行简单的数学运算。例如,`result=$(expr 5 + 7 / 2)` 计算表达式并将结果赋值给 `result`。 2. **文件权限判断**: 判断文件是否可执行可以使用 `if [ -x "filename" ];...

    Linux shell脚本攻略--数学运算.docx

    Linux shell 脚本攻略中有多种方法来进行数学运算,包括 let 指令、[] 方法、(()) 方法、expr 方法和 bc 方法。下面将详细介绍每种方法的使用和示例。 1、let 指令 let 指令可以用来进行基本的算术操作,例如加减...

    shell基础介绍

    ### Shell基础介绍 #### Shell简介 Shell是一种计算机操作系统中的用户界面,它允许用户通过命令行方式与操作系统进行交互。...希望这些基础知识能帮助大家更好地理解和掌握Bash Shell的使用方法。

    Linux(shell/bash)的脚本教程

    虽然Bash本身不支持复杂的数学运算,但可以借助`expr`命令或者使用`let`来进行基本的数学计算。例如: ```bash #!/bin/bash # 计算两个数字的和 NUM1=5 NUM2=3 RESULT=$(expr $NUM1 + $NUM2) echo "The sum is: $...

    unix-os教学课件第五章shell程序设计.ppt

    9. **Shell程序的调试方法**:通过添加调试语句、使用`set`命令开启调试模式、分析错误信息等手段来定位和修复问题。 通过学习这些内容,你可以掌握如何编写和运行简单的Shell脚本,实现自动化任务,以及进行更复杂...

    Linux Shell脚本系列教程(五):数学运算

    本文将详细阐述如何在Shell脚本中进行数学运算,包括使用let、(())、[]操作符,expr命令以及bc工具。 首先,我们可以使用let命令来进行算术运算。let命令允许我们在Shell脚本中执行数学表达式,它会把变量当作数字...

Global site tag (gtag.js) - Google Analytics