如何在 Shell 脚本中使用 if-else?

從我們之前的教程( / 社區 / 教程 / 架構 - 架構 - 架構 - 架構)前進,讓我們了解如何在架構 - 架構中使用 if-else。

条件编程是任何编程语言的重要组成部分,因为在我们的程序中执行每个单独的语句往往是不理想的。

我们需要一种方法来条件执行陈述. shell 脚本中的 if-else 服务于此确切情况。

Shell 脚本中的条件

条件编程中最重要的部分之一是 if-else 语句. if-else 语句允许您在代码中执行迭代条件语句。

我们在壳脚本中使用 if-else 来评估一个条件,然后决定使用结果在两个或多个语句集之间执行一组。

这基本上允许我们选择对我们条件表达所评估的结果的反应。

if-else 在 Shell 脚本中是如何工作的?

现在我们知道什么是 if-else 函数,以及为什么它对任何程序员来说都很重要,无论其领域如何。

让我们来看看 if-else 条件块的语法。

1if [condition]
2then
3   statement1
4else
5   statement2
6fi

这里我们有四个关键词,即 if,然后, else 和 _fi。

  1. 关键字 if 随后是 condition
  2. 这个 condition 被评估以决定处理器将执行哪个陈述
  3. 如果 condition 评估为 TRUE,处理器将执行后来的陈述(s) 关键字 then。 在语法中,它被称为 statement1
  4. 在一个情况下,如果 condition 评估为 FALSE,处理器将执行后来的陈述(s)。

要记住的一个重要事情是,就像C编程一样,壳脚本是案例敏感的,因此,你需要在你的代码中使用关键字时小心。

如何在shell脚本中使用 if-else

很容易看到函数的语法,并相信你知道如何使用它,但通过示例了解函数总是是一个更好的选择,因为它们有助于你理解函数的不同方面发挥的作用。

以下是 if-else 在壳脚本中的一些有用的例子,以便您更好地了解如何使用此工具。

CommandDescription
&&Logical AND
$0Argument 0 i.e. the command that's used to run the script
$1First argument (change number to access further arguments)
-eqEquality check
-neInequality check
-ltLess Than
-leLess Than or Equal
-gtGreater Than
-geGreater Than or Equal

使用 if-else 来检查两个数字是否等于

在试图理解 if-else 类型的函数在壳脚本中的运作时,最好从简单开始. 在这里,我们将两个变量 a 和 b 初始化,然后使用 if-else 函数来检查两种变量是否相等。

 1#!/bin/bash
 2m=1
 3n=2
 4
 5if [ $n -eq $m ]
 6then
 7        echo "Both variables are the same"
 8else
 9        echo "Both variables are different"
10fi

出发点:**

1Both variables are different

使用 if-else 来比较两个值

如果-else在壳脚本中更常见的用途是比较两个值,比较一个变量与另一个变量或固定值有助于在各种情况下被各种类型的程序员使用。

为了这个例子,我们将初始化两个变量,并使用 if-else 函数来找到比另一个更大的变量。

1#!/bin/bash
2a=2
3b=7
4if [ $a -ge $b ]
5then
6  echo "The variable 'a' is greater than the variable 'b'."
7else
8  echo "The variable 'b' is greater than the variable 'a'."
9fi

出发点:**

1The variable 'b' is greater than the variable 'a'.

使用 if-else 来检查一个数字是否

有时我们会遇到需要处理和区分平数和奇数的情况,如果我们使用模块操作员的帮助,我们可以使用shell脚本中的 if-else。

模块运算器将一个数分为一个分子,然后返回剩余数。

由于我们知道所有平数都是2的倍数,我们可以使用以下壳脚本来检查一个数字是否是平的或奇怪的。

1#!/bin/bash
2n=10
3if [ $((n%2))==0 ]
4then
5  echo "The number is even."
6else
7  echo "The number is odd."
8fi

出发点:**

1The number is even

正如你可以看到的那样,我们已经在双重支架中封锁了一部分条件,这是因为我们需要在检查条件之前执行模块操作。

此外,在双中嵌入会运行 C 样式的陈述,允许您在 bash 脚本中处理一些 C 样式的命令。

使用 if-else 作为一个简单的密码提示

if-else 函数以其多功能性和应用范围而闻名. 在本示例中,我们将使用 if-else 在壳脚本中为密码提示创建界面。

为此,我们将要求用户输入密码并将其存储在变量 _pass 中。

如果它匹配了此示例中的预定义密码,即密码,用户将获得输出为密码正确

否则,壳脚本会告诉用户密码是错误的,并要求他们再次尝试。

1#!/bin/bash
2echo "Enter password"
3read pass
4if [ $pass="password" ]
5then
6  echo "The password is correct."
7else
8  echo "The password is incorrect, try again."
9fi

Bash Password

结论

壳脚本中的 if-else 函数是壳程序员的重要资产,是当您需要基于预定义条件执行一组陈述时使用的最佳工具。

通过调节特定陈述的执行,您不仅使您的代码更高效,而且还释放了处理器可能浪费的宝贵时间来执行在特定情况下不必要的陈述。

我们希望本教程能够帮助您了解如何使用 if-else 函数. 如果您有任何问题,反馈或建议,请在下面的评论中与我们联系。

Published At
Categories with 技术
Tagged with
comments powered by Disqus