邏輯運算符
和大多數語言一樣,shell 的邏輯運算符有與或非三種,不同的是 shell 有兩套邏輯運算符。
第一套,測試內作邏輯運算
邏輯運算符 | 說明 |
---|---|
[ ! expression ] | 邏輯非 |
[ expression1 -a expression2 ] | 邏輯與 |
[ expression1 -o expression2 ] | 邏輯或 |
第二套,測試外作邏輯運算
邏輯運算符 | 說明 |
---|---|
! [ expression ] | 邏輯非 |
[ expression1 ] && [ expression2 ] | 邏輯與 |
[ expression1 ] || [ expression2 ] | 邏輯或 |
邏輯運算是短路運算;支持多個邏輯運算符組合。
#learn_logic_operator.sh
#!/bin/bash
a=10
b=20
c=0
if [ $b -gt $a -a $b -gt $c ]; then
echo b is largest number
fi
if [ $c -lt $a ] && [ $c -lt $b ]; then
echo c is less number
fi
if [ $c -eq 0 ]; then
echo c is zero
fi
if [ ! $a -eq 0 ]; then
echo a is not zero
fi
if ! [ $b -eq 0 ]; then
echo b is not zero
fi
執行結果
b is largest number
c is less number
c is zero
a is not zero
b is not zero