zoukankan      html  css  js  c++  java
  • Shell运算符

    一 包括

      -->算数运算符,关系运算符,布尔运算符,字符串运算符,文件测试运算符。

    二 算数运算符

      下表列出了常用的运算符,假设变量a=10,b=20。

      

    运算符  说明 举例
    + 加法

    echo `expr $a + $b`  输出30

    - 减法 echo `expr $a - $b`  输出-10
    * 乘法

    echo `expr $a * $b`    输出200

    除法 echo `expr $a / $b`    输出2
    % 取余 echo `expr $b % $a` 输出0
    = 赋值 a=$b 将把变量 b 的值赋给 a
    == 相等,如果相同返回true [ $a == $b ] 返回 false
    != 不相等,如果不相等返回true [ $a != $b ] 返回 true
    #!/bin/sh
    a=20 b=10 echo "jia: `expr $a + $b`" echo "jian: `expr $a - $b`" echo "cheng: `expr $a * $b`" echo "chu: `expr $a / $b`" echo "quyu: `expr $a % $b`"

     if [ $a == $b ]

      then

         echo "a==b"

     fi

    
    

      if [ $a != $b ]

    then
       echo "a!=b"
    fi
    a=$b

    三 关系运算符

      只支持数字,不支持字符串,如果字符串是数字的也可以。

      假设变量a=20,b=10。

    运算符   说明 举例
    -eq 判断两个数是否相等,相等返回true [$a -eq $b]  返回false
    -ne 判断两个数是否不相等,不相等返回true [$a -ne $b] 返回true
    -gt 判断左边的是否大于右边的,是就返回true [$a -gt $b] 返回true
    -lt 判断左边的是否小于右边的,是就返回true [$a -lt $b] 返回false
    -ge 判断左边的是否大于等于右边的,是就返回true [$a -ge $b] 返回true
    -le 判断左边的是否小于等于右边的,是就返回true [$a -le $b] 返回false

    eg:实例

    #!/bin/sh
    a=20
    b=10
    
    if [ $a -eq $b ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [ $a -ne $b ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [ $a -gt $b ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    
    
    if [ $a -lt $b ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [ $a -ge $b ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [ $a -le $b ]
    then
       echo "true"
    else
       echo "false"
    fi

    结果:

      false

          true

          true

          false

          true

          false

    四 布尔运算符

      假设a=20,b=10。

    运算符 说明 举例
    ! 表达式为false,返回true,否则返回false [!false] 返回true
    -o 或运算,有一个表达式为true就返回true [ $a -gt $b -o $b -gt $b] 返回true
    -a 与运算,表达式都为true才返回true [ $a -gt $b -a $b -lt $b] 返回true

    eg:实例

    #!/bin/sh
    a=20
    b=10
    
    if [ !false ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [ $a -gt $b -o $a -lt $b ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [ $a -gt $b -a $b -lt $a ]
    then
       echo "true"
    else
       echo "false"
    fi

    结果:

      true

      true

      true

    五 逻辑运算符

      假设a=20,b=10。

    运算符 说明 举例
    && 逻辑的AND
    [[ $a -gt $b && $b -lt $a ]]  返回true
    || 逻辑的OR
    [[ $a -gt $b || $a -lt $b ]]  返回true

    eg:实例

    #!/bin/sh
    a=20
    b=10
    
    if [[ $a -gt $b && $b -lt $a ]]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [[ $a -gt $b || $a -lt $b ]]
    then
       echo "true"
    else
       echo "false"
    fi

    结果:

      true

      true

    六 字符串运算符

      假设字符串a="abc",b="efg"。

    运算符 说明 举例
    = 判断两个字符串是否相等,相等返回true [ $a = $b ] 返回false
    != 判断两个字符串是否不相等,不相等返回true [ $a != $b ] 返回true
    -z 判断字符串长度是否为0,为0返回true

    [ -z $a ]   返回false

    -n 判断字符串长度是否为0,不为0返回true [ -n $a ]   返回true
    str 判断字符串是否为空,不为空返回true [ $a ]  返回true

      

     

    eg:实例

    #!/bin/sh
    a="abc"
    b="efg"
    
    if [ $a = $b ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [ $a !=  $b ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [ -z $a ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [ -n $b ]
    then
       echo "true"
    else
       echo "false"
    fi
    
    if [ $a ]
    then
       echo "true"
    else
       echo "false"
    fi

    结果:

      false

          true

          false

          true

          true

    七 文件测试运算符

      文件测试运算符用于检测 Unix 文件的各种属性。 

      

    操作符 说明 举例
    -b file 检测文件是否是块设备文件,如果是,则返回 true [ -b $file ] 返回 false
    -c file 检测文件是否是字符设备文件,如果是,则返回 true [ -c $file ] 返回 false
    -d file 检测文件是否是目录,如果是,则返回 true [ -d $file ] 返回 false
    -f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true [ -f $file ] 返回 true
    -g file 检测文件是否设置了 SGID 位,如果是,则返回 true [ -g $file ] 返回 false
    -k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true [ -k $file ] 返回 false
    -p file 检测文件是否是有名管道,如果是,则返回 true [ -p $file ] 返回 false
    -u file 检测文件是否设置了 SUID 位,如果是,则返回 true [ -u $file ] 返回 false
    -r file 检测文件是否可读,如果是,则返回 true [ -r $file ] 返回 true
    -w file 检测文件是否可写,如果是,则返回 true [ -w $file ] 返回 true
    -x file 检测文件是否可执行,如果是,则返回 true [ -x $file ] 返回 true
    -s file 检测文件是否为空(文件大小是否大于0),不为空返回 true [ -s $file ] 返回 true
    -e file 检测文件(包括目录)是否存在,如果是,则返回 true [ -e $file ] 返回 true

     

      

    eg:实例

      变量 file 表示文件"/usr/test.sh",它的大小为100字节,具有 rwx 权限。下面的代码,将检测该文件的各种属性: 

      

    #!/bin/sh
    
    
    file="/usr/test.sh"
    if [ -r $file ]
    then
       echo "文件可读"
    else
       echo "文件不可读"
    fi
    if [ -w $file ]
    then
       echo "文件可写"
    else
       echo "文件不可写"
    fi
    if [ -x $file ]
    then
       echo "文件可执行"
    else
       echo "文件不可执行"
    fi
    if [ -f $file ]
    then
       echo "文件为普通文件"
    else
       echo "文件为特殊文件"
    fi
    if [ -d $file ]
    then
       echo "文件是个目录"
    else
       echo "文件不是个目录"
    fi
    if [ -s $file ]
    then
       echo "文件不为空"
    else
       echo "文件为空"
    fi
    if [ -e $file ]
    then
       echo "文件存在"
    else
       echo "文件不存在"
    fi

    结果:

      文件可读

      文件可写

      文件可执行

      文件为普通文件  

      文件不是个目录

      文件不为空

      文件存在

     这篇分享给大家的是一些运算符,种类挺多,可以学习借鉴下,喜欢的记得给小编来个赞啊。

  • 相关阅读:
    02-css的选择器学习.html
    01-css-css的声明.html
    10-描点学习
    09-HTML-form标签学习.html
    08-HTML-框架标签学习.html
    07-HTML-内嵌标签学习.html
    06-HTML-表格标签学习.html
    05-HTML-超链接标签.html
    04-HTML-图片标签学习.html
    03-HTML-body标签(列表标签).html
  • 原文地址:https://www.cnblogs.com/lyr999736/p/9019662.html
Copyright © 2011-2022 走看看