在 Bash 中使用 if...else 语句进行条件代码执行。
Bash (Bourne Again Shell) 是 GNU/Linux 操作系统中的 shell 命令提示符和脚本语言。它是大多数 Linux 发行版的默认 shell。
条件语句在任何编程语言中都是至关重要的,无论是编译的还是脚本化的。它们让用户根据预定义的条件执行一段代码,这是编程逻辑的基础之一。在本文中,我们将学习如何使用 如果别的
Bash 中的条件语句。
介绍
这 如果别的
Bash 中的语句允许用户根据条件操作代码流。用户可以指定要执行的单独代码块,根据满足的相应条件,在运行时最终只执行其中一个代码块。
请注意,可以指定两个以上的条件,其中 艾利夫
可以使用语句。用户可以使用任意数量的条件 艾利夫
,最后使用默认条件 别的
堵塞。让我们在下面的语法和示例中了解更多相关信息。
一般语法
的一般语法 如果别的
Bash 中的语句是:
如果那么 别的 菲
在这里,如果 满足,即如果返回 0(成功),则执行代码块 1。如果条件不返回 0,即返回失败状态,则执行代码块 2。这
如果别的
块以 a 结尾 菲
陈述。
对于多个条件对应的多个块,艾利夫
用来:
如果那么 elif 然后 elif 然后 ... ... 别的 菲
在这里,按顺序检查条件,并执行返回状态 0(成功)的第一个条件的代码块。例如。如果 如果没有一个条件返回状态 0, 请注意, 执行代码块 如果变量具有特定值: 要检查多个值: 条件可以是任何 Linux 命令。如果命令运行成功,将执行相应的代码块。 在上面的例子中,由于 我们也可以嵌套另一个 当满足初始条件后要检查一组单独的条件时,这很有用。 例如,以下代码尝试安装 Web 服务器软件: 代码首先检查系统中是否已经安装了 Nginx。如果是,它只显示一条消息并退出。如果不是,它会尝试安装 Nginx。 如果由于某种原因,Nginx 无法从包中安装到系统中,它会尝试安装 Apache2。如果 Apache2 在安装时出错,它会退出并显示无法安装软件的消息。 以类似的方式,嵌套块可以用于 类似于任何 Bash 代码, 用户还可以将此代码保存在脚本文件中并执行该脚本文件。 这 要为此文件授予执行权限,请运行: 最后,要执行该文件,请运行: 类似于任何编程语言, 返回非零状态(失败),然后
被检查。如果
返回状态 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
如果 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
如果 nginx -v 则回显“NGINX 已经安装。”否则,如果 sudo apt install nginx 则回显“NGINX 安装成功”。 elif sudo apt install apache2 然后回显“APACHE2 安装成功”。 else echo "无法安装任何网络软件。"菲
艾利夫
块。执行
如果别的
:脚本和命令行如果别的
语句可以直接在 Bash shell 中使用,也可以从可执行的 shell 脚本文件中使用。一旦 Bash 解释器找到一个 如果
, 别的
或者 艾利夫
语句,它继续 shell 让用户输入代码块。#!/bin/bash
在开始指定执行文件时要使用的解释器。尽管 Bash 是当今最常用的 shell,但有些用户确实更喜欢 zsh 这样的 shell,应该在此文件的开头指定它来代替 bash。chmod +x 测试.sh
./test.sh
结论
如果别的
语句是 Bash 的一个基本特性。学习它的使用对编写基本和高级脚本大有帮助。