在 Linux 的 Bash 指令碼中否定 if 條件


要在 Linux 的 Bash 指令碼中否定“if”條件,可以使用“!”運算子。例如,如果您有一個“if”語句檢查變數“x”是否等於 5,則可以使用“if [ ! $x -eq 5 ]”來否定該條件。如果條件不成立(即“x”不等於 5),則這將執行“if”塊中的命令。

整數比較

在 Bash 中,可以使用以下運算子比較整數:

  • eq(等於)

  • ne(不等於)

  • gt(大於)

  • ge(大於或等於)

  • lt(小於)

  • le(小於或等於)

例如,可以使用“-eq”運算子檢查變數“x”是否等於 5:

if [ $x -eq 5 ]
then
   echo "x is equal to 5"
fi

也可以使用“-ne”運算子檢查變數“x”是否不等於 5:

if [ $x -ne 5 ]
then
   echo "x is not equal to 5"
fi

可以類似地使用其他比較運算子。

請注意,方括號和比較運算子周圍的空格很重要,並且在與字串進行比較時,必須將變數括在雙引號中。

字串比較

在 Bash 中,可以使用以下運算子比較字串:

  • =(等於)

  • !=(不等於)

  • -z(字串為空)

  • -n(字串不為空)

例如,可以使用“=”運算子檢查變數“s”是否等於“hello”:

if [ "$s" = "hello" ]
then
   echo "s is equal to hello"
fi

也可以使用“!=”運算子檢查變數“s”是否不等於“hello”:

if [ "$s" != "hello" ]
then
   echo "s is not equal to hello"
fi

也可以使用“-z”運算子檢查字串是否為空:

if [ -z "$s" ]
then
   echo "s is an empty string"
fi

可以使用“-n”運算子檢查字串是否不為空:

if [ -n "$s" ]
then
   echo "s is not an empty string"
fi

請注意,方括號和比較運算子周圍的空格很重要,並且必須將變數括在雙引號中。

否定

在 Bash 中,可以使用“!”運算子否定條件。

例如,可以使用“!”否定變數“x”等於 5 的比較:

if [ ! "$x" -eq 5 ]
then
   echo "x is not equal to 5"
fi

也可以使用“!”否定字串比較:

if [ ! "$s" = "hello" ]
then
   echo "s is not equal to hello"
fi

可以使用“!”運算子否定任何命令或條件的結果。

此外,可以使用雙重否定來達到相同的效果,如下所示:

if [[ "$x" != 5 ]]
then
   echo "x is not equal to 5"
fi

還值得注意的是,可以將 [[...]] 用於字串和數字比較,而不是 [...]。它更易讀且更靈活。

請注意,方括號和比較運算子周圍的空格很重要,並且必須將變數括在雙引號中。

結論

在 Bash 中,可以使用不同的比較運算子檢查相等性、不相等性、大於、小於和其他條件。這些運算子可以與包含整數或字串的變數一起使用。此外,可以使用“!”運算子否定條件以檢查其是否為假。[[...]] 也是一種檢查條件的方法,更易讀且更靈活。需要注意的是,方括號和比較運算子周圍的空格很重要,並且在與字串進行比較時,必須將變數括在雙引號中。

更新於:2023年1月25日

瀏覽量 10K+

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告