命令列表的执行规律
命令列表的执行规律符合逻辑运算的运算规律,用 &&
连接起来的命令,如果前者成功返回,将执行后面的命令,反之不然;用 ||
连接起来的命令,如果前者成功返回,将不执行后续命令,反之不然。
范例:如果 ping 通 www.lzu.edu.cn,那么打印连通信息
$ ping -c 1 www.lzu.edu.cn -W 1 && echo "=======connected======="
非常有趣的问题出来了,即我们上面已经提到的:为什么要让 C 程序在 main()
函数的最后返回 0 ?如果不这样,把这种程序放入命令列表会有什么样的结果?你自己写个简单的 C 程序,然后放入命令列表看看。
命令列表的作用
有时用命令列表取代 if/then
等条件分支结构可以省掉一些代码,而且使得程序比较美观、易读,例如:
范例:在脚本里判断程序的参数个数,和参数类型
#!/bin/bash
echo $#
echo $1
if [ $# -eq 1 ] && (echo $1 | grep '^[0-9]*$' >/dev/null);then
echo "YES"
fi
说明:上例要求参数个数为 1 并且类型为数字。
再加上 exit 1
,我们将省掉 if/then
结构
#!/bin/bash
echo $#
echo $1
! ([ $# -eq 1 ] && (echo $1 | grep '^[0-9]*$' >/dev/null)) && exit 1
echo "YES"
这样处理后,对程序参数的判断仅仅需要简单的一行代码,而且变得更美观。
小结
这一节介绍了 Shell 编程中的逻辑运算,条件测试和命令列表。