在shell脚本编写指南中,我们已经介绍了足够多的基础知识,您应该可以放心地进行实验。在本周的部分中,我们将处理一些更有趣的事情,比如条件和“if-then”语句。
在日常语言中,我们说条件是发生某事必须满足的条件。为了让我的笔记本电脑能够连接到互联网,有几个条件必须满足,比如有一个ISP,调制解调器和/或路由器在,我的笔记本电脑在,等等。这很简单,如果其中任何一个要求没有满足,结果-我的笔记本电脑连接到互联网-不会发生。
计算领域的条件也是如此。我们可以测试一个字符串是否匹配另一个字符串,它是否不匹配另一个字符串,甚至它是否存在。类似地,我们可以测试数值参数,看一个参数是否大于、小于或等于另一个参数。为了在满足测试条件后发生一些事情,我们使用“if-then”语句。它们的格式非常简单。
if CONDITION then command1 command2 … commandn fi
让我们运行一个快速的小测试脚本,好吗?
if test $1 -gt $2 then echo “$1 is greater than $2” fi
您将注意到,只有当该条件为真时,脚本才会执行以下命令。否则,“if”语句将退出。如果在“If”语句之后有任何命令,那么它们将正常运行。为了说明这一点,我在上述脚本的末尾添加了以下行:
echo “This comes after the if statement”
下面是一些您可能需要尝试的其他数值运算符:
现在,如果我们将脚本的第一行修改为:
if test $1 = $2
然后条件将测试两者是否相等。不过这里有个陷阱!!使用等号(=)比较两个字符串,而不是数字。如果您想比较数字,您需要使用“-eq”运算符,类似于我们上面使用“-gt”的方式。
现在,让我们做另一个修改:
if test $1 != $2
包含感叹号(!)充当“not”修饰语。也就是说,它只在两个字符串不匹配时运行以下命令。
下面是一些可以使用的基于字符串的测试的列表:
我承认,那个片名绝对是个蹩脚的双关语。好吧,如果测试为真,我们知道如何执行命令,但是如果测试为假,我们想执行另一个命令呢?我们可以通过在“if-then”语句中添加一个部分,即“else”来轻松地将两者结合起来!
if CONDITION then command1 command2 … commandn else command1 command2 … commandn fi
让我们编一个简单的脚本。
所有的东西都有适当的压痕。如果仔细观察,您会注意到我们使用了方括号([和])而不是test命令。就我们的目的而言,它们在功能上是等价的,而且出于各种原因,您更可能看到方括号,因此我们将从现在开始使用它们。
以下是输出的外观:
就这么简单!
既然您知道如何使用“if-then-else”语句,就可以运行可以执行测试的脚本了。例如,您可以运行一个脚本来计算文件的md5哈希值,然后将其与您在文件中下载的哈希值进行比较,以查看它们是否匹配。
为了获得一些好处,您可以创建一个具有“For”循环的脚本,但是使用测试条件而不是从列表文件中读取行…
我们将在Shell脚本初学者指南中看到一些更有趣的部分。如果您错过了之前的课程,请查看以下快速列表:
如果您**或使用了利用测试条件、If-then-else语句和“for”循环的脚本,请在注释中与我们分享!
... 为用户提供额外的导出选项,如PDF(通过if-then或case语句根据输入添加选项)。 ...
...l还可以执行存储在文件中的命令。这种执行模式称为shell脚本,本文将介绍shell脚本的基础知识。 ...
...可以在Unity中使用的语言),那么请参阅我们的指南,为初学者提供六种最简单的编程语言。 ...
... 此外,还有一个Bash脚本部分,它解释了可以在命令行中进行的基本编程。这包括变量、if语句、循环和函数。如果你不熟悉这些,不用担心——它们相当简单! ...
Xcode是go-to-Mac开发环境,但对初学者来说可能有点过分。如果你很好奇,只是想玩一下,微软的visualstudio代码可能是更好的选择。 ...
如果你在编写脚本的世界里感到舒服,并且在Mac上工作,AppleScript可能是你的自动化解决方案。AppleScript是一种功能强大的语言,只要它提供AppleScript库,就可以控制任何应用程序。 ...
假设你是一个bash脚本向导,喜欢为不太懂技术的朋友和家人自动化任务。即使你给了他们一个脚本,完全解决了他们的问题,他们可能仍然担心自己使用终端。在这种情况下,您不妨手动为它们执行所有操作。 ...
Excel宏可以通过自动化经常使用的Excel过程来节省大量的时间。但是宏实际上是非常有限的。录音工具很容易出错,录音过程也很尴尬。 ...
...器学习等领域的应用,但它也很容易学习语法,因此深受初学者的喜爱。 ...