在Linux中否定Bash脚本中的if条件
要否定Linux中Bash脚本中的 “if “条件,你可以使用”!”操作符。例如,如果你有一个检查变量 “x “是否等于5的 “if “语句,你可以用if [ !$ x -eq 5 ]
来否定这个条件。如果条件不对(即如果 “x “不等于5),这将运行 “if “块内的命令。
整数比较
在Bash中,你可以使用下列运算符来比较整数 –
- eq (equal to)
-
ne (not equal to)
-
gt (greater than)
-
ge (greater than or equal to)
-
lt (less than)
-
le (less than or equal to)
例如,你可以使用”-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中,你可以使用下列运算符来比较字符串 –
- = (equal to)
-
!= (not equal to)
-
-z (string is empty)
-
-n (string is not empty)
例如,你可以使用”=”运算符来检查变量 “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
请注意,方括号和比较运算符周围的空格很重要,而且变量必须用双引号括起来。
Negation
在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中,你可以使用不同的比较运算符来检查平等、不平等、大于、小于和其他条件。这些运算符可以用于包含整数或字符串的变量。此外,你可以使用”!”运算符来否定一个条件,以检查它是否为假。[[...]]
也是检查条件的一种方式,而且更具有可读性和灵活性。需要注意的是,方括号和比较运算符周围的空格很重要,当你用字符串进行比较时,变量必须用双引号括起来。