在Shell腳本中,你可以使用復雜的if條件來執行不同的操作
使用雙方括號[[ ]]
來包含條件表達式。這樣可以在條件表達式中使用更多的高級操作符。
使用邏輯操作符-a
(與)和-o
(或)來組合多個條件。注意,這些操作符只能在雙方括號內使用。
使用括號()
來分組條件,以便更好地控制條件的優先級。
下面是一個示例,展示了如何在Shell腳本中編寫復雜的if條件:
#!/bin/bash
num1=10
num2=20
str1="hello"
str2="world"
# 使用雙方括號和邏輯操作符
if [[ ($num1 -gt 5 && $num2 -lt 30) || ($str1 == "hello" && $str2 != "world") ]]; then
echo "條件1為真"
else
echo "條件1為假"
fi
# 使用括號分組條件
if [ \( $num1 -eq 10 -a $num2 -eq 20 \) -o \( $str1 != "hello" -o $str2 == "world" \) ]; then
echo "條件2為真"
else
echo "條件2為假"
fi
在這個示例中,我們使用了雙方括號和邏輯操作符來創建復雜的if條件。第一個if條件檢查num1
是否大于5且num2
是否小于30,或者str1
是否等于"hello"且str2
是否不等于"world"。第二個if條件使用括號分組條件,檢查num1
和num2
是否都等于10,或者str1
不等于"hello"且str2
等于"world"。