HOWTO · Bash
Bash 指令碼中的邏輯或運算子
本文介紹如何在 Bash 指令碼中使用邏輯或運算子。
我們將在本文中解釋邏輯 OR 運算子(||)及其工作原理。我們還將舉例說明如何在 Bash 指令碼中使用它。
Bash 中的邏輯 OR 運算子 (||)
邏輯 OR 運算子||處理多個值。它通常與布林值一起使用並返回一個布林值。如果至少有一個運算元為真,則返回真。如果所有值都為假,則返回 假。
讓我們舉幾個例子。
True || False --> True
False || True --> True
True || True --> True
False || False --> False
具有非布林值的邏輯 OR 運算子 (||)
如果邏輯 OR 運算子 (||) 與字串和數字等非布林值一起使用,則返回值將不是布林值。參考下面的例子。
param1 || param2 || param3
如果 param1 的布林值為 true,則返回該運算元的值,忽略其他運算元。否則,檢查 param2。
如果其布林值為 true,則結果為 param2 的值,其餘運算元將被忽略。這個過程一直持續到最後一個運算元。
如果最後一個運算元的布林值也不是 true,則結果是最後一個運算元的值。
以下表示式的布林值為 false。其餘的都是真實。
0NaNnullundefined"",''(空字串)
讓我們舉例說明非布林值。
1 || 0 --> 1
"" || 1 --> 1
"" || 0 --> 0
1 || "x" --> 1
"x" || 1 --> "x"

在 Bash 指令碼中使用邏輯 OR 運算子 (||)
邏輯 OR 運算子 (||) 在 Bash 指令碼中是相同的。現在,我們將使用 Bash 指令碼語法檢查該示例。
if [ 1 -eq 2 ] || [ 1 -eq 1 ]; then
echo "The result of the operation is true"
else
echo "The result of the operation is false"
fi
在上面的 if 塊中,運算元被賦予邏輯 OR 運算子 (||)。第一次比較的結果是 false,因為 1 和 2 不相等。
由於在第二次比較中這兩個值相同,因此它們相等,從而得出 true。所以,我們的過程變成了 false ||真的。該操作返回 true,並且第一個 echo 命令按照我們上面解釋的方式執行。

我們也可以使用 -o 標誌進行此操作。
if [ 1 -eq 2 -o 3 -eq 4 ]; then
echo "The result of the operation is true"
else
echo "The result of the operation is false"
fi
這段程式碼的邏輯與第一個相同。但是這一次,操作的結果將是假,因為兩個比較都是假的。因此,else 塊內的 echo 命令執行。
