在 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 中,可以使用不同的比较运算符检查相等性、不相等性、大于、小于和其他条件。这些运算符可以与包含整数或字符串的变量一起使用。此外,可以使用“!”运算符否定条件以检查其是否为假。[[...]] 也是一种检查条件的方法,更易读且更灵活。需要注意的是,方括号和比较运算符周围的空格很重要,并且在与字符串进行比较时,必须将变量括在双引号中。