• Shell入门(八)之布尔运算


    一、常规的布尔运算

    常规的布尔运算符有:!、&&、||

    使用语法

    ! exp

    exp &&  exp

    exp || exp

    [[ n op m && a op b]]

    ...

    exp为[ n op m ]或test n op m或true或false

    二、条件测试的布尔运算

    条件测试的布尔运算有:!、-o、-a

    a = 10

    b=20

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

    三、实例

    #!/bin/bash
    a=10
    b=20
    echo -e "
    ----true/false----"
    if ! false 
    then
     echo "!false:true"
    fi
    if true || false 
    then
     echo "true||false:true"
    fi
    if true && false 
    then
     echo "true&&false:true"
    else
     echo "true&&false:false"
    fi
    
    echo -e "
    ---- ! && || [] ----"
    if ! [ $a -eq $b ]
    then
      echo "![$a 等于 $b]:true"
      else
      echo "![$a 等于 $b]:false"
    fi
    if [ $a -eq $b ] && [ $a -ne $b ]
    then
      echo "[$a 等于 $b]&&[$a 不等于 $b]:true"
      else
      echo "[$a 等于 $b]&&[$a 不等于 $b]:false"
    fi
    if [ $a -eq $b ] || [ $a -ne $b ]
    then
      echo "[$a 等于 $b]||[$a 不等于 $b]:true"
      else
      echo "[$a 等于 $b]||[$a 不等于 $b]:false"
    fi
    
    echo -e "
    ---- ! && || test ----"
    if ! test $a -eq $b 
    then
      echo "! test $a 等于 $b:true"
      else
      echo "! test $a 等于 $b:false"
    fi
    if test $a -eq $b  && test $a -ne $b 
    then
      echo "test $a 等于 $b && test $a 不等于 $b:true"
      else
      echo "test $a 等于 $b && test $a 不等于 $b:false"
    fi
    if test $a -eq $b || test $a -ne $b 
    then
      echo "test $a 等于 $b || test $a 不等于 $b:true"
      else
      echo "test $a 等于 $b || test $a 不等于 $b:false"
    fi
    
    echo -e "
    ----  [[  && || ]] ----"
    if [[ $a -eq $b  &&  $a -ne $b ]]
    then
      echo "[[$a 等于 $b && $a 不等于 $b]]:true"
      else
      echo "[[$a 等于 $b && $a 不等于 $b]]:false"
    fi
    if [[ $a -eq $b  ||  $a -ne $b ]]
    then
      echo "[[$a 等于 $b || $a 不等于 $b]]:true"
      else
      echo "[[$a 等于 $b || $a 不等于 $b]]:false"
    fi
    
    echo -e "
    ---- [ ! -a -o ] ----"
    if [ ! $a -ne $b ]
    then
      echo "[!$a 不等于 $b]:true"
      else
      echo "[!$a 不等于 $b]:false"
    fi
    if [ $a -gt $b -o $a -lt $b ]
    then
      echo "[$a 大于 $b -o $a 小于 $b]:true"
      else
      echo "[$a 大于 $b -o $a 小于 $b]:false"
    fi
    if [ $a -lt $b -a  $a -gt $b ] 
    then
      echo "[$a 小于 $b -a $a 大于 $b]:true"
      else
      echo "[$a 小于 $b  -a $a 大于 $b]:false"
    fi
  • 相关阅读:
    tensorflow2.0 GPU和CPU 时间对比
    第一次使用FileZilla Server
    PremiumSoft Navicat 15 for Oracle中文破解版安装教程
    Unmapped Spring configuration files found. Please configure Spring facet or use 'Create Default Context' to add one including all unmapped files.
    ng : 无法加载文件 D: odejs ode_global g.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
    angular
    Github上优秀的go项目
    win10---file explore 中remove quick access folder
    react--useEffect使用
    linux---cat 和 grep 的妙用
  • 原文地址:https://www.cnblogs.com/maokun/p/7421894.html
Copyright © 2020-2023  润新知