怎样用 Bash 编程:语法和工具( 三 )


正如预期,因为目录无法创建,第一条命令失败了,于是第二条命令被执行 。
把 && 和 || 两种运算符结合起来才能发挥它们的最大功效 。请看下面例子中的流程控制方法:
语法解释:“假如 command1 退出时返回码为零,就执行 command2,否则执行 command3 。”用具体代码试试:
现在我们再试一次,用你的家目录替换 /root 目录,你将会有权限创建这个目录了:
像 command1 && command2 这样的控制语句能够运行的原因是,每条命令执行完毕时都会给 shell 发送一个返回码,用来表示它执行成功与否 。默认情况下,返回码为 0 表示成功,其他任何正值表示失败 。一些系统管理员使用的工具用值为 1 的返回码来表示失败,但其他很多程序使用别的数字来表示失败 。
Bash 的内置变量 $? 可以显示上一条命令的返回码,可以在脚本或者命令行中非常方便地检查它 。要查看返回码,让我们从运行一条简单的命令开始,返回码的结果总是上一条命令给出的 。
在这个例子中,返回码为零,意味着命令执行成功了 。现在对 root 的家目录测试一下,你应该没有权限:
本例中返回码是 2,表明非 root 用户没有权限进入这个目录 。你可以利用这些返回码,用控制运算符来改变程序执行的顺序 。
总结本文将 Bash 看作一门编程语言,并从这个视角介绍了它的简单语法和基础工具 。我们学习了如何将数据输出到 STDOUT,怎样使用变量和控制运算符 。在本系列的下一篇文章中,将会重点介绍能够控制指令执行流程的逻辑运算符 。


推荐阅读