Unix / Linux - Shell 布尔运算符示例

  • 简述

    Bourne Shell 支持 wing 布尔运算符。
    假设变量 a 容纳 10 和变量 b 持有 20 然后 -
    操作员 描述 例子
    ! 这是逻辑否定。这将真条件转换为假,反之亦然。 [ ! 假] 是真的。
    -o 这是合乎逻辑的 OR. 如果操作数之一为真,则条件为真。 [ $a -lt 20 -o $b -gt 100 ] 是真的。
    -a 这是合乎逻辑的 AND. 如果两个操作数都为真,则条件为真,否则为假。 [ $a -lt 20 -a $b -gt 100 ] 是假的。
  • 例子

    这是一个使用所有布尔运算符的示例 -
    
    #!/bin/sh
    a=10
    b=20
    if [ $a != $b ]
    then
       echo "$a != $b : a is not equal to b"
    else
       echo "$a != $b: a is equal to b"
    fi
    if [ $a -lt 100 -a $b -gt 15 ]
    then
       echo "$a -lt 100 -a $b -gt 15 : returns true"
    else
       echo "$a -lt 100 -a $b -gt 15 : returns false"
    fi
    if [ $a -lt 100 -o $b -gt 100 ]
    then
       echo "$a -lt 100 -o $b -gt 100 : returns true"
    else
       echo "$a -lt 100 -o $b -gt 100 : returns false"
    fi
    if [ $a -lt 5 -o $b -gt 100 ]
    then
       echo "$a -lt 100 -o $b -gt 100 : returns true"
    else
       echo "$a -lt 100 -o $b -gt 100 : returns false"
    fi
    
    上面的脚本将生成以下结果 -
    
    10 != 20 : a is not equal to b
    10 -lt 100 -a 20 -gt 15 : returns true
    10 -lt 100 -o 20 -gt 100 : returns true
    10 -lt 5 -o 20 -gt 100 : returns false
    
    使用运算符时需要考虑以下几点 -
    • 运算符和表达式之间必须有空格。例如,2+2 不正确;它应该写为 2 + 2。
    • if...then...else...fi 声明是一个决策声明,在下一章中已经解释过。