ad

《零基础Linux 从入门到精通》_从零开始_轻松掌握Linux操作系统_13.1 结构化命令

admin 144 2023-10-23

【摘要】 本书摘自《零基础Linux 从入门到精通》一书中第13章,第1节,编者是零壹快学

第 13 章

《零基础Linux 从入门到精通》_从零开始_轻松掌握Linux操作系统_13.1 结构化命令

结构化命令

13.1 结构化命令

在第12章中,shell脚本的执行都是按顺序进行的,在一些应用场景下这样的执行方式已经足够 了。但是如果我们想要使其按照一定条件执行,比如在用户输入了某些信息后shell脚本根据用户输 入的信息执行不同的动作,这就需要结构化命令了。结构化命令归根结底就是对shell脚本执行逻辑 的控制, 在执行过程中, 允许流程产生新的分支, 不同的情况输出不同的结果。针对初次接触逻 辑流程控制的读者, 我们将详细介绍各个控制的逻辑和语法, 如果读者已具备一定的编程基础,这部分可以粗略地查看。

13.2 条件判断

13.2.1 if-then语句

最常见的流程控制语句就是if-then语句,if-then语句的标准格式如下所示。

如果if后面接的命令执行成功,根据前文所述,返回的$?状态码为0,则会执行then下面的命令;如果if后面接的命令执行失败,则跳过then下面的命令行。我们通过两个脚本来加以理解。

基 础 Linux 从入门到精通

动手写 13.2.1

执行结果如下。

如果if后面的条件语句执行不成功,则不会运行then后面的命令语句,如下所示。 动手写 13.2.2

执行结果如下所示。

可以看到,shell脚本提示了CommandNotExist这个命令并不存在,但是我们可以看到执行shell脚本的状态码是0,并不是127,这是因为对于sh if02.sh而言这是执行成功的,因此状态码依然是0。

13.2.2 if-then-else语句

if-then语句中,只有if命令执行成功,才执行then下面的命令, 反之则不执行。如果要让if后的 命令执行失败后继续执行我们想要的另一组命令,可以通过if-then-else语句实现,标准格式如下。

第 13 章 结构化命令

当if中的命令执行成功后,也就是返回码为0时,会执行第一组命令,但是不会执行第二组命 令。当if后的命令执行失败,返回码不为0时,执行第二组命令,但是不会执行第一组命令。我们可以通过如下的脚本加以理解。

动手写 13.2.3

执行结果如下。

该脚本读取文件内容,并输出“File exist”,如果文件不存在,则创建该文件并提示创建成功。因此根据一条命令的执行状态,可以演化出两条分支执行。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《大数据时代信息资源检索与分析》_让你更懂数据_1.4.2.3 循环检索法
下一篇:《VMware vSphere 云平台运维与管理》_向云端进发_2.1项目2 搭建VMware 企业级虚拟化平台
相关文章
×