shell if 怎樣進(jìn)行條件判斷

小樊
81
2024-10-09 09:54:37

在Shell腳本中,if語(yǔ)句用于進(jìn)行條件判斷。以下是一個(gè)基本的if語(yǔ)句結(jié)構(gòu):

if [ condition ]; then
  # 當(dāng)條件為真時(shí)執(zhí)行的命令
elif [ condition ]; then
  # 當(dāng)?shù)谝粋€(gè)條件為假,但第二個(gè)條件為真時(shí)執(zhí)行的命令
else
  # 當(dāng)所有條件都為假時(shí)執(zhí)行的命令
fi
  1. condition:這是一個(gè)測(cè)試表達(dá)式,用于判斷是否滿足某個(gè)條件。常見(jiàn)的測(cè)試操作符有:

    • -eq:等于
    • -ne:不等于
    • -gt:大于
    • -ge:大于等于
    • -lt:小于
    • -le:小于等于
    • -z:字符串長(zhǎng)度為零
    • -n:字符串長(zhǎng)度不為零
    • =:字符串相等(注意:等號(hào)兩邊不能有空格)
    • !=:字符串不相等
  2. then:緊跟在條件判斷后面的關(guān)鍵字,表示當(dāng)條件為真時(shí),接下來(lái)要執(zhí)行的命令塊。

  3. elif:可選的關(guān)鍵字,用于在多個(gè)條件之間進(jìn)行選擇??梢杂卸鄠€(gè)elif子句。

  4. else:可選的關(guān)鍵字,表示當(dāng)所有條件都為假時(shí),要執(zhí)行的命令塊。

  5. fi:結(jié)束if語(yǔ)句的關(guān)鍵字。

下面是一個(gè)簡(jiǎn)單的示例,判斷一個(gè)數(shù)字是否為正數(shù):

num=10

if [ $num -gt 0 ]; then
  echo "The number is positive."
else
  echo "The number is not positive."
fi

這個(gè)腳本將輸出 “The number is positive.”,因?yàn)樽兞?code>num的值是10,大于0。

0