Unix/Linux - Shell 布林運算子示例



Bourne Shell 支援以下布林運算子。

假設變數a的值為 10,變數b的值為 20,則:

運算子 描述 示例
! 這是邏輯非運算。它將真條件轉換為假,反之亦然。 [ ! false ] 為真。
-o 這是邏輯運算。如果其中一個運算元為真,則條件為真。 [ $a -lt 20 -o $b -gt 100 ] 為真。
-a 這是邏輯運算。如果兩個運算元都為真,則條件為真,否則為假。 [ $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
廣告