Bash If

17 Mar 2025 | 5 分钟阅读

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

Bash if 语句很有用。它们用于在语句的顺序执行流程中执行条件任务。If 语句通常允许我们在 Bash 脚本中做出决策。它们帮助我们决定是否基于我们可能设置的条件来运行一段代码。

基本 If 语句

基本 if 语句命令如果特定条件为真,则仅执行给定的一组操作。如果不是真的,则不执行这些操作。If 语句基于以下格式

语法

thenfi(If 的倒写)之间的语句将仅在表达式(方括号之间)为真时执行。

注意:观察第一行中使用的空格和第一行末尾的分号;两者都是强制使用的。 If 条件语句fi 结尾。

  • 使用 AND 运算符使用多个条件
  • 使用 OR 运算符使用多个条件
  • 对于带有 AND & OR 运算符的复合表达式,我们可以使用以下语法

以下是一些演示 if 语句用法的示例

示例 1

在此示例中,获取任何数字的用户输入,并检查该值是否大于 125。

输出

如果我们输入数字 159,那么输出将如下所示

Bash If Statement

示例 2

在此示例中,我们演示了使用 if 语句 与比较两个字符串的简单场景

输出

Bash If Statement

示例 3

在此示例中,我们演示了如何使用 if 语句比较数字

输出

Bash If Statement

示例 4

在此示例中,我们将定义如何使用 AND 运算符在 if 表达式中包含多个条件

输出

Bash If Statement

示例 5

在此示例中,我们将定义如何使用 OR 运算符在 if 表达式中包含多个条件

输出

Bash If Statement

示例 6

在此示例中,我们将定义如何使用 AND 和 OR 在 if 表达式中包含多个条件

输出

Bash If Statement

Bash 脚本中 If 语句的选项

If 语句包含许多用于执行特定任务的选项。这些选项可用于文件操作、字符串操作等。以下是一些最常用的选项

-
选项(运算符)描述
! 表达式检查 表达式 是否为假。
-n STRING检查 STRING 的长度是否大于零。
-z STRING检查 STRING 的长度是否为零(即,它为空)
STRING1 == STRING2检查 STRING1 是否等于 STRING2。
STRING1 != STRING2检查 STRING1 是否不等于 STRING2。
INTEGER1 -eq INTEGER2检查 INTEGER1 在数值上是否等于 INTEGER2。
INTEGER1 -gt INTEGER2检查 INTEGER1 在数值上是否大于 INTEGER2。
INTEGER1 -lt INTEGER2检查 INTEGER1 在数值上是否小于 INTEGER2。
-d FILE检查 FILE 是否存在并且它是一个目录。
-e FILE检查 FILE 是否存在。
-r FILE检查 FILE 是否存在并且授予了读取权限。
-s FILE检查 FILE 是否存在且其大小大于零(这意味着它不为空)。
-w FILE检查 FILE 是否存在并且授予了写入权限。
x FILE检查 FILE 是否存在并且授予了执行权限。

嵌套 If

您可以在 Bash 脚本中根据需要应用任意多个“if 语句”。也可以在一个“if 语句”中使用另一个 if 语句。这被称为嵌套 If 语句。

示例

在此示例中,我们将通过使用嵌套的 if 表达式来查找“给定的数字是否大于 50 以及它是否是偶数”。

输出

如果我们输入参数值 100,那么输出将如下所示

Bash If Statement

结论

在本主题中,我们讨论了如何使用 bash if 语句在语句的顺序执行流程中使用条件分支。


下一个主题Bash If Else 语句