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


Bourne Shell 支持以下布尔运算符。

假设变量a为 10,变量b为 20,则 -

操作员 描述 例子
这是逻辑否定。这会将 true 条件反转为 false,反之亦然。 [!假] 是真的。
-o 这是逻辑。如果其中一个操作数为真,则条件为真。 [ $a -lt 20 -o $b -gt 100 ] 是正确的。
-A 这是逻辑AND。如果两个操作数都为 true,则条件为 true,否则为 false。 [ $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语句是一个决策语句,在下一章中已经解释过。

unix-basic-operators.htm