在Shell腳本中,if
語句用于根據條件執行代碼塊
if [ condition ]; then
# 如果條件為真,則執行這里的代碼塊
fi
或者使用elif
和else
來處理多個條件:
if [ condition1 ]; then
# 如果condition1為真,則執行這里的代碼塊
elif [ condition2 ]; then
# 如果condition1為假,但condition2為真,則執行這里的代碼塊
else
# 如果condition1和condition2都為假,則執行這里的代碼塊
fi
注意,方括號[
和]
之間的空格是必需的。在Shell腳本中,條件表達式需要用方括號括起來。
以下是一些常見的條件表達式:
-z string
:如果字符串string的長度為零,則為真。-n string
:如果字符串string的長度非零,則為真。string1 = string2
:如果字符串string1和string2相等,則為真。string1 != string2
:如果字符串string1和string2不相等,則為真。integer1 -eq integer2
:如果整數integer1等于整數integer2,則為真。integer1 -ne integer2
:如果整數integer1不等于整數integer2,則為真。integer1 -gt integer2
:如果整數integer1大于整數integer2,則為真。integer1 -ge integer2
:如果整數integer1大于或等于整數integer2,則為真。integer1 -lt integer2
:如果整數integer1小于整數integer2,則為真。integer1 -le integer2
:如果整數integer1小于或等于整數integer2,則為真。-e file
:如果文件file存在,則為真。-d file
:如果文件file存在并且是一個目錄,則為真。-f file
:如果文件file存在并且是一個普通文件,則為真。這些條件表達式可以組合使用,例如:
if [ -n "$var" ] && [ $var -gt 10 ]; then
echo "變量var非空且大于10"
fi