在Bash脚本中否定if条件
Contents
1. 简介
在 bash 编程中,最常见的控制结构之一是if语句。它让我们可以通过比较变量来选择不同的行动方案。
在本教程中,我们将学习如何在 bash 中否定这些条件,重点是数字和字符串的比较。
2. 整数比较
假设我们有两个保存数字的变量。在 bash 中,我们可以使用-ne*比较运算符检查它们的不等式*:
foo=1
bar=2
if [[ $foo -ne $bar ]]
then
echo "The integers are not equal"
fi
此示例将打印结果*“整数不相等”*:
The integers are not equal
3. 字符串比较
同样,我们可以比较字符串。请注意,foo和bar现在保存的是字符串,而不是数字:
foo=Hello
bar=World
if [[ $foo != $bar ]]
then
echo "The strings are not equal"
fi
执行后,我们将看到以下输出:
The strings are not equal
重要的是要注意!=应该用于字符串,而-ne*用于数字*。
4. 否定
我们可以使用!(非)运算符:
if ! [[ expr ]]; then
当我们在*[[之外使用not运算符时,它将执行[[*内部的表达式并将结果取反。 让我们看一个例子来更好地理解它:
num=1
if ! [[ $num -eq 0 ]]
then
echo "Value of num is not 0"
fi
如果num的值等于0,则表达式返回 true。但它被否定了,因为我们在方括号外使用了not运算符。如果我们有多个表达式,那么整个结果都是否定的。
我们还可以对*[[*中的单个表达式使用 not 运算符:
if [[ ! expr ]]; then
让我们考虑另一个例子:
num=1
if [[ ! $num -eq 0 ]]
then
echo "Value of num is not 0"
fi
在这里,我们对单个表达式使用了*not (!) *运算符。当我们有多个表达式时,*not (!)*运算符仅应用于单个表达式。
一般来说,使用*!* 方括号内的运算符。