在 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

请注意,方括号和比较运算符周围的空格很重要,并且必须将变量括在双引号中。

Learn Linux/Unix in-depth with real-world projects through our Linux/Unix certification course. Enroll and become a certified expert to boost your career.

否定

在 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+

启动你的职业生涯

完成课程获得认证

开始学习
广告