Bash 'if else' 语句:教程和示例

在 Bash 中使用 if...else 语句进行条件代码执行。

Bash (Bourne Again Shell) 是 GNU/Linux 操作系统中的 shell 命令提示符和脚本语言。它是大多数 Linux 发行版的默认 shell。

条件语句在任何编程语言中都是至关重要的,无论是编译的还是脚本化的。它们让用户根据预定义的条件执行一段代码,这是编程逻辑的基础之一。在本文中,我们将学习如何使用 如果别的 Bash 中的条件语句。

介绍

如果别的 Bash 中的语句允许用户根据条件操作代码流。用户可以指定要执行的单独代码块,根据满足的相应条件,在运行时最终只执行其中一个代码块。

请注意,可以指定两个以上的条件,其中 艾利夫 可以使用语句。用户可以使用任意数量的条件 艾利夫,最后使用默认条件 别的 堵塞。让我们在下面的语法和示例中了解更多相关信息。

一般语法

的一般语法 如果别的 Bash 中的语句是:

如果那么  别的 

在这里,如果 满足,即如果返回 0(成功),则执行代码块 1。如果条件不返回 0,即返回失败状态,则执行代码块 2。这 如果别的 块以 a 结尾 陈述。

对于多个条件对应的多个块,艾利夫 用来:

如果那么  elif 然后  elif 然后  ... ... 别的 

在这里,按顺序检查条件,并执行返回状态 0(成功)的第一个条件的代码块。例如。如果 返回非零状态(失败),然后 被检查。如果 返回状态 0, 被执行。在此之后,不再检查进一步的条件,代码继续执行之后的代码 陈述。

如果没有一个条件返回状态 0, 在 else 块中被执行。请注意,else 块是可选的。如果不满足条件,也没有 别的 指定块,不会运行有条件的代码块,代码将继续执行后的代码 语句,如下面的流程图所示。

请注意, 然后 声明只能在之后使用 如果艾利夫 声明后不需要 别的 陈述。

例子

执行代码块 如果变量具有特定值:

x=0 if [ $x -eq 0 ] then echo "Value of X is 0" else echo "Value of X is not 0" fi

要检查多个值:

x=2 if [ $x -eq 0 ] then echo "Value of X is 0" elif [ $x -eq 1 ] then echo "Value of X is 1" elif [ $x -eq 2 ] then echo "Value of X 是 2" else echo "X 的值不是 0" fi

条件可以是任何 Linux 命令。如果命令运行成功,将执行相应的代码块。

如果 npm -v 然后回显“系统中存在 NPM”否则 sudo apt install npm fi

在上面的例子中,由于 新产品经理 系统中没有安装,命令 npm -v 返回非零状态。因此,代码执行进入 别的 块,我们在这里安装 npm 使用 易于 包管理器。如我们所见,它提示我输入密码并开始安装 npm。

我们也可以嵌套另一个 如果别的 块内 如果, 别的 或者 艾利夫 堵塞:

x=0 y=1 if [ $x -eq 0 ] then echo "X is 0" if [ $y -eq 1 ] then echo "Y is 1" else echo "Y is not 1" fi else echo "X is不是 0" fi

当满足初始条件后要检查一组单独的条件时,这很有用。

例如,以下代码尝试安装 Web 服务器软件:

如果 nginx -v 则回显“NGINX 已经安装。”否则,如果 sudo apt install nginx 则回显“NGINX 安装成功”。 elif sudo apt install apache2 然后回显“APACHE2 安装成功”。 else echo "无法安装任何网络软件。"菲

代码首先检查系统中是否已经安装了 Nginx。如果是,它只显示一条消息并退出。如果不是,它会尝试安装 Nginx。

如果由于某种原因,Nginx 无法从包中安装到系统中,它会尝试安装 Apache2。如果 Apache2 在安装时出错,它会退出并显示无法安装软件的消息。

以类似的方式,嵌套块可以用于 艾利夫 块。

执行 如果别的:脚本和命令行

类似于任何 Bash 代码, 如果别的 语句可以直接在 Bash shell 中使用,也可以从可执行的 shell 脚本文件中使用。一旦 Bash 解释器找到一个 如果, 别的 或者 艾利夫 语句,它继续 shell 让用户输入代码块。

用户还可以将此代码保存在脚本文件中并执行该脚本文件。

#!/bin/bash 在开始指定执行文件时要使用的解释器。尽管 Bash 是当今最常用的 shell,但有些用户确实更喜欢 zsh 这样的 shell,应该在此文件的开头指定它来代替 bash。

要为此文件授予执行权限,请运行:

chmod +x 测试.sh

最后,要执行该文件,请运行:

./test.sh

结论

类似于任何编程语言, 如果别的 语句是 Bash 的一个基本特性。学习它的使用对编写基本和高级脚本大有帮助。