📜  如果不执行Bash语句

📅  最后修改于: 2020-12-29 06:05:50             🧑  作者: Mango

否则重击

在本主题中,我们将了解如何在Bash脚本中使用if-else语句来完成我们的自动化任务。

Bash if-else语句用于在语句的顺序执行流程中执行条件任务。有时,如果条件为真,我们想处理一组特定的语句,如果条件为假,则要处理另一组语句。为了执行此类操作,我们可以应用if-else机制。我们可以使用“ if语句”应用条件。

如果没有其他语法

Bash Shell脚本中if-else语句的语法可以定义如下:

if [ condition ];
then
   
else
  
fi

要记住的要点

  • 我们可以使用一组使用条件运算符连接的一个或多个条件。
  • 其他块命令包括一组在条件为假时执行的动作。
  • 条件表达式后的分号(;)是必须的。

查看以下示例,演示在Bash脚本中使用if-else语句:

例子1

下面的示例包含两个不同的场景,其中在第一个if-else语句中条件为true,在第二个if-else语句中条件为false。

#!/bin/bash

#when the condition is true
if [ 10 -gt 3 ];
then
  echo "10 is greater than 3."
else
  echo "10 is not greater than 3."
fi

#when the condition is false
if [ 3 -gt 10 ];
then
  echo "3 is greater than 10."
else
  echo "3 is not greater than 10."
fi

输出量

在第一个if-else表达式中,条件(10 -gt 3)为true,因此执行if块中的语句。而在另一个if-else表达式中,条件(3 -gt 10)为false,因此执行else块中的语句。

例子2

在此示例中,我们说明了如何在Bash中的if-else语句中使用多个条件。我们使用bash逻辑运算符来加入多个条件。

#!/bin/bash

# When condition is true
# TRUE && FALSE || FALSE || TRUE
if [[ 10 -gt 9 && 10 == 9 || 2 -lt 1 || 25 -gt 20 ]];
then
  echo "Given condition is true."
else
  echo "Given condition is false."
fi

# When condition is false
#TRUE && FALSE || FALSE || TRUE
if [[ 10 -gt 9 && 10 == 8 || 3 -gt 4 || 8 -gt 8 ]];
then
  echo "Given condition is true."
else
  echo "Given condition is not true."
fi

输出量

如果在一行中没有其他语句,则执行Bash

我们可以在一行中编写完整的“ if-else语句”以及命令。您需要遵循给定的规则才能在一行中使用if-else语句:

  • 在if和else块的语句末尾使用分号(;)。
  • 使用空格作为分隔符来附加所有语句。

下面给出一个示例,说明如何在单行中使用if-else语句:

#!/bin/bash

read -p "Enter a value:" value
if [ $value -gt 9 ]; then echo "The value you typed is greater than 9."; else echo "The value you typed is not greater than 9."; fi

输出量

当我们输入值25时,输出将如下所示:

重击嵌套如果其他

就像嵌套的if语句一样,if-else语句也可以在另一个if-else语句中使用。在Bash脚本中将其称为嵌套if-else。

下面是一个示例,说明如何在Bash中使用嵌套的if-else语句:

#!/bin/bash

read -p "Enter a value:" value
if [ $value -gt 9 ];
then
  if [ $value -lt 11 ];
  then
     echo "$value>9, $value<11"
  else
    echo "The value you typed is greater than 9."
  fi
else echo "The value you typed is not greater than 9."
fi

输出量

如果我们输入10作为值,那么输出将如下所示:

结论

在本主题中,我们通过示例了解了Bash if-else语句的语法和用法。