shell脚本编写初学者指南4:条件&if-then语句

在shell脚本编写指南中,我们已经介绍了足够多的基础知识,您应该可以放心地进行实验。在本周的部分中,我们将处理一些更有趣的事情,比如条件和“if-then”语句。...

shell脚本编写初学者指南4:条件&if-then语句

在shell脚本编写指南中,我们已经介绍了足够多的基础知识,您应该可以放心地进行实验。在本周的部分中,我们将处理一些更有趣的事情,比如条件和“if-then”语句。

什么是条件(conditi***)?

在日常语言中,我们说条件是发生某事必须满足的条件。为了让我的笔记本电脑能够连接到互联网,有几个条件必须满足,比如有一个ISP,调制解调器和/或路由器在,我的笔记本电脑在,等等。这很简单,如果其中任何一个要求没有满足,结果-我的笔记本电脑连接到互联网-不会发生。

计算领域的条件也是如此。我们可以测试一个字符串是否匹配另一个字符串,它是否不匹配另一个字符串,甚至它是否存在。类似地,我们可以测试数值参数,看一个参数是否大于、小于或等于另一个参数。为了在满足测试条件后发生一些事情,我们使用“if-then”语句。它们的格式非常简单。

if CONDITION then command1 command2 … commandn fi

if语句

让我们运行一个快速的小测试脚本,好吗?

if test $1 -gt $2 then echo “$1 is greater than $2” fi

shell脚本编写初学者指南4:条件&if-then语句

您将注意到,只有当该条件为真时,脚本才会执行以下命令。否则,“if”语句将退出。如果在“If”语句之后有任何命令,那么它们将正常运行。为了说明这一点,我在上述脚本的末尾添加了以下行:

echo “This comes after the if statement”

shell脚本编写初学者指南4:条件&if-then语句

下面是一些您可能需要尝试的其他数值运算符:

  • -等式:等于
  • -ne:不等于
  • -lt:小于
  • -le:小于或等于
  • -gt:大于
  • -ge:大于或等于

测试字符串

现在,如果我们将脚本的第一行修改为:

if test $1 = $2

然后条件将测试两者是否相等。不过这里有个陷阱!!使用等号(=)比较两个字符串,而不是数字。如果您想比较数字,您需要使用“-eq”运算符,类似于我们上面使用“-gt”的方式。

shell脚本编写初学者指南4:条件&if-then语句

现在,让我们做另一个修改:

if test $1 != $2

shell脚本编写初学者指南4:条件&if-then语句

包含感叹号(!)充当“not”修饰语。也就是说,它只在两个字符串不匹配时运行以下命令。

下面是一些可以使用的基于字符串的测试的列表:

  • 字符串:仅使用参数本身测试字符串是否为空(null)或未以某种方式定义
  • -n string:这将测试字符串是否为非空且已定义
  • -z字符串:这将测试字符串是否为空并且是这样定义的

如果还有什么?

我承认,那个片名绝对是个蹩脚的双关语。好吧,如果测试为真,我们知道如何执行命令,但是如果测试为假,我们想执行另一个命令呢?我们可以通过在“if-then”语句中添加一个部分,即“else”来轻松地将两者结合起来!

if CONDITION then command1 command2 … commandn else command1 command2 … commandn fi

让我们编一个简单的脚本。

shell脚本编写初学者指南4:条件&if-then语句

所有的东西都有适当的压痕。如果仔细观察,您会注意到我们使用了方括号([和])而不是test命令。就我们的目的而言,它们在功能上是等价的,而且出于各种原因,您更可能看到方括号,因此我们将从现在开始使用它们。

以下是输出的外观:

shell脚本编写初学者指南4:条件&if-then语句

就这么简单!

我现在该怎么办?

既然您知道如何使用“if-then-else”语句,就可以运行可以执行测试的脚本了。例如,您可以运行一个脚本来计算文件的md5哈希值,然后将其与您在文件中下载的哈希值进行比较,以查看它们是否匹配。

为了获得一些好处,您可以创建一个具有“For”循环的脚本,但是使用测试条件而不是从列表文件中读取行…

 


我们将在Shell脚本初学者指南中看到一些更有趣的部分。如果您错过了之前的课程,请查看以下快速列表:

 

  1. Shell脚本的基础知识
  2. 用于循环
  3. 更基本的命令
  4. Linux shell之间有什么区别?
  5. 如何使用基本正则表达式

如果您**或使用了利用测试条件、If-then-else语句和“for”循环的脚本,请在注释中与我们分享!

  • 发表于 2021-04-12 20:28
  • 阅读 ( 179 )
  • 分类:互联网

你可能感兴趣的文章

在windows中写入批处理文件?else语句如何工作

...务,再也不用担心它们了。高级用户应该尽早了解批处理脚本。 ...

  • 发布于 2021-03-12 20:01
  • 阅读 ( 296 )

使用简单的shell脚本修复html格式

... 为用户提供额外的导出选项,如PDF(通过if-then或case语句根据输入添加选项)。 ...

  • 发布于 2021-03-13 00:12
  • 阅读 ( 234 )

什么是shell脚本,为什么要使用它

...l还可以执行存储在文件中的命令。这种执行模式称为shell脚本,本文将介绍shell脚本的基础知识。 ...

  • 发布于 2021-03-13 04:53
  • 阅读 ( 246 )

用unity编写游戏:初学者指南

...可以在Unity中使用的语言),那么请参阅我们的指南,为初学者提供六种最简单的编程语言。 ...

  • 发布于 2021-03-13 11:55
  • 阅读 ( 233 )

顶级网站和书籍,让您成为linux命令行英雄

... 此外,还有一个Bash脚本部分,它解释了可以在命令行中进行的基本编程。这包括变量、if语句、循环和函数。如果你不熟悉这些,不用担心——它们相当简单! ...

  • 发布于 2021-03-14 07:04
  • 阅读 ( 243 )

VisualStudio代码是mac的完美文本和脚本编辑器

Xcode是go-to-Mac开发环境,但对初学者来说可能有点过分。如果你很好奇,只是想玩一下,微软的visualstudio代码可能是更好的选择。 ...

  • 发布于 2021-03-14 07:11
  • 阅读 ( 201 )

什么是applescript?编写第一个mac自动化脚本

如果你在编写脚本的世界里感到舒服,并且在Mac上工作,AppleScript可能是你的自动化解决方案。AppleScript是一种功能强大的语言,只要它提供AppleScript库,就可以控制任何应用程序。 ...

  • 发布于 2021-03-20 16:33
  • 阅读 ( 524 )

如何使用applescript将bash脚本转换为可单击的应用程序

假设你是一个bash脚本向导,喜欢为不太懂技术的朋友和家人自动化任务。即使你给了他们一个脚本,完全解决了他们的问题,他们可能仍然担心自己使用终端。在这种情况下,您不妨手动为它们执行所有操作。 ...

  • 发布于 2021-03-21 09:39
  • 阅读 ( 245 )

关于在excel中编写vba宏的初学者教程(以及学习的原因)

Excel宏可以通过自动化经常使用的Excel过程来节省大量的时间。但是宏实际上是非常有限的。录音工具很容易出错,录音过程也很尴尬。 ...

  • 发布于 2021-03-24 10:07
  • 阅读 ( 240 )

如何使用“helloworld”脚本开始使用python

...器学习等领域的应用,但它也很容易学习语法,因此深受初学者的喜爱。 ...

  • 发布于 2021-03-28 01:18
  • 阅读 ( 304 )
承八十往助gwu
承八十往助gwu

0 篇文章

相关推荐