美文网首页
Linux 命令 & shell 脚本之04(bash shel

Linux 命令 & shell 脚本之04(bash shel

作者: 轻飘飘D | 来源:发表于2020-09-27 00:14 被阅读0次

    1.expr 命令操作符

    表11-1 expr命令操作符
    操 作 符 描 述
    ARG1 | ARG2   如果ARG1既不是null也不是零值,返回ARG1;否则返回ARG2
    ARG1 & ARG2   如果没有参数是null或零值,返回ARG1;否则返回0
    ARG1 < ARG2   如果ARG1小于ARG2,返回1;否则返回0
    ARG1 <= ARG2  如果ARG1小于或等于ARG2,返回1;否则返回0
    ARG1 = ARG2   如果ARG1等于ARG2,返回1;否则返回0
    ARG1 != ARG2   如果ARG1不等于ARG2,返回1;否则返回0
    ARG1 >= ARG2   如果ARG1大于或等于ARG2,返回1;否则返回0
    ARG1 > ARG2   如果ARG1大于ARG2,返回1;否则返回0
    ARG1 + ARG2   返回ARG1和ARG2的算术运算和
    ARG1 - ARG2   返回ARG1和ARG2的算术运算差
    ARG1 * ARG2   返回ARG1和ARG2的算术乘积
    ARG1 / ARG2   返回ARG1被ARG2除的算术商
    ARG1 % ARG2   返回ARG1被ARG2除的算术余数
    STRING : REGEXP       如果REGEXP匹配到了STRING中的某个模式,返回该模式匹配
    match STRING REGEXP   如果REGEXP匹配到了STRING中的某个模式,返回该模式匹配
    substr STRING POS LENGTH   返回起始位置为POS(从1开始计数)、长度为LENGTH个字符的子字符串
    index STRING CHARS   返回在STRING中找到CHARS字符串的位置;否则,返回0
    length STRING   返回字符串STRING的数值长度
    + TOKEN   将TOKEN解释成字符串,即使是个关键字
    (EXPRESSION)   返回EXPRESSION的值
    

    2.expr 命令案例

    [oracle@DB02 myshell]$ expr 1 + 5
    6
    
    #许多expr命令操作符在shell中另有含义(比如星号)。出现在在expr命令中时,会得到一些诡异的结果。
    [oracle@DB02 myshell]$ expr 5 * 2
    expr: syntax error
    #用shell的转义字符(反斜线)将其标出来
    [oracle@DB02 myshell]$ expr 5 \* 2
    10
    

    3.在shell脚本中使用expr命令

    [oracle@DB02 myshell]$ cat test_expr.sh
    #!/bin/bash
    # An example of using the expr command
    var1=10
    var2=20
    var3=$(expr $var2 / $var1)
    echo The result is $var3
    
    [oracle@DB02 myshell]$ chmod u+x test_expr.sh 
    [oracle@DB02 myshell]$ ./test_expr.sh 
    The result is 2
    

    4.bash shell有一个针对处理数学运算符的改进 用美元符和方括号($[ operation ])将数学表达式围起来

    #注意在使用方括号来计算公式时,不用担心shell会误解乘号或其他符号, 無需轉義
    
    [oracle@DB02 myshell]$ var1=$[1 + 5]
    [oracle@DB02 myshell]$ echo $var1
    6
    [oracle@DB02 myshell]$ var2=$[$var1 * 2]
    [oracle@DB02 myshell]$ echo $var2
    12
    
    [oracle@DB02 myshell]$ cat test_expr2.sh
    #!/bin/bash
    var1=100
    var2=50
    var3=45
    var4=$[$var1 * ($var2 - $var3)]
    echo The final result is $var4
    
    [oracle@DB02 myshell]$ chmod u+x test_expr2.sh 
    [oracle@DB02 myshell]$ ./test_expr2.sh 
    The final result is 500
    

    相关文章

      网友评论

          本文标题:Linux 命令 & shell 脚本之04(bash shel

          本文链接:https://www.haomeiwen.com/subject/lrszektx.html