Contents

在Bash脚本中否定if条件

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. 字符串比较

同样,我们可以比较字符串。请注意,foobar现在保存的是字符串,而不是数字:

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 (!)*运算符仅应用于单个表达式。

一般来说,使用*!* 方括号内的运算符。