Shell 脚本 101:Shell 脚本中的 If Else

在我们今天的 Shell 脚本 101 中,我们将学习如何使用 如果在 shell 脚本中为 else 以及哪些不同的情况需要使用 Linux 中的 if 和 else 语句. 一个被证明的使用 “如果声明” 在我们之前的教程中完成了关于 break 和 continue 语句.

shell 脚本中 if else 的不同基本语法是:

  1. 基本 if 语句 – 如果… [things to do if TRUE] …是
  2. if-else 语句 – 如果…[things to do if TRUE]…别的… [things to do if FALSE]…是
  3. 多个条件 – 如果…。[things to do if TRUE]…alif…[secondary condition actions]…别的…[things to do if FALSE]…是
  4. 嵌套如果 – 如果… [things to do if TRUE]……否则……如果……[things to do if TRUE]…fi…fi

Linux 中的基本 if 语句

这是一个简单的条件语句。 当您希望脚本做的只是检查特定条件时,您需要一个基本的 if 语句。 让我们看看如何使用它。

n=1 if [ $n -eq 1 ] then         echo "This is true" fi 

在上面的脚本中,我们所做的只是将值 1 分配给变量 $n(了解更多关于 shell 脚本中的变量的信息),然后检查变量的值是否为 1。

如果它是真的,“这是真的”语句将被打印出来。 如果为假,脚本将不输出任何内容,因为我们这里没有 else 语句。

Linux 中的基本 if 语句

您还可以通过使用 chmod 命令.

Shell 脚本中的 If Else

让我们继续讨论一个情况 如果条件 变成假的。 如果我们不指定任何内容来处理此问题,代码将退出“if”块并继续执行其余代码。 但我们不希望这种情况发生。 这就是我们利用 否则声明.

我们将继续使用上面的代码,但我们将更改 $n。

n=2 if [ $n -eq 1 ] then         echo "This is true" else         echo "N is no longer 1" fi 

Save 上面的脚本并使用 bash 或终端中的 sh 命令。

如果其他输出

如果我们没有在脚本中添加“else”块,我们将不会收到任何输出。 显而易见的原因是我们没有处理 $n 不等于 1 的脚本的情况。

Shell 脚本中的 If Elif Else

现在我们已经在 shell 脚本中使用 if else 处理了 $n 不等于 1 的情况。 但是,如果我们必须处理更多的情况怎么办。 假设我们需要确定变量是否大于 5。 如果它大于 5,那么我们要求脚本输出其他内容。 如果它不等于 1 或不大于 5,那么我们将使用默认输出。

n=5 if [ $n -eq 1 ] then         echo "Variable is 1" elif [ $n -ge 5 ] then         echo "The variable is greater than 5" else         echo "Variable is greater than 1 but less than 5" fi 
If Elif Else 输出If Elif Else 输出

尝试上面的脚本并继续修改正在使用的变量。 您将看到脚本流如何根据变量值从 if 到 elif 到 else 运行。

if…elif…else…fi 块可用于处理许多不同的操作,但更好的选择是 switch…case,我们将在下一个 Shell Scripting 101 教程中讨论。

使用布尔运算符在 Shell 脚本中的 If Else 中测试多个条件

在上面的代码中,我们测试了每个语句的一个条件。 if 代码测试 $n 变量是否等于 1。elif (else if) 条件测试变量是否大于或等于 5,并且 else 语句处理默认输出以防两种情况都为假。

但我们也可以测试多种条件,而不仅限于一种。 假设我们希望 if 条件测试 $n=1 或 $n=3,我们将使用 && (AND) 或 || (OR) 布尔运算符。

&& 运算符检查两个操作是否为真,而 || 运算符检查任一操作是否为真。 在我们的例子中,我们将使用 || 操作,因为变量 $n 不能同时为 1 和 3。

n=3 if [ $n -eq 1 ] || [ $n -eq 3 ] then         echo "Variable is 1 or 3" elif [ $n -ge 5 ] then         echo "The variable is greater than 5" else         echo "Variable is greater than 1 but less than 5" fi 
If Else 布尔值If Else 布尔值

如您所见,shell 脚本中的 if else 检查两个变量值,我们能够处理两种情况。 我们可以对 && 布尔运算符。

结论

你做到了! 随着我们学习教程的进展,您应该能够为自己创建越来越复杂的脚本,以自动化您的大量日常重复工作。 确保您继续阅读教程以更好地理解 shell 脚本。