多条命令中的逻辑运算和括号

1、逻辑或“||”

运算符格式:command1 || command2

执行命令时,先执行command1,如果command1执行成功,则跳过命令command2,执行后面的内容;如果command1执行失败才会执行command2.

用法示例:

(1)下面是一个读取邮件的例子:

[zhu@localhost ~]$ mail -f /root/mbox || echo "Permission denied"
/root/mbox: Permission denied
Permission denied
[zhu@localhost ~]$

普通用户使用mail命令读取root的历史邮件,如果失败,则显示提示信息。然而上面的示例中提示信息有两条,可以使用如下方法屏蔽错误提示:

[zhu@localhost ~]$ mail -f /root/mbox 2>/dev/null || echo "Permission denied"
Permission denied
[zhu@localhost ~]$

(2)逻辑或在管理和维护系统的过程中很有用。例如测试两个主机的连通性,如果失败则返回提示:

[root@localhost zhu]# ping 125.25.34.2 -c3 &>/dev/null || echo "Host network connection is lost."
Host network connection is lost.

2、逻辑与“&&”

运算符格式:command1 && command2

先执行命令command1,如果执行成功,则会继续执行命令command2;如果执行失败,就会跳过command2.

用法示例:

(1)例如为移动文件操作添加提示信息:

[root@localhost zhu]# mv a* test/ && echo "Successfully moved files."
Successfully moved files.

(2)在管理和维护系统时,逻辑与可以用于当测试正常时向用户输出提示信息。例如,检查主机服务器是否能正常提供服务并输出提示信息:

[root@localhost zhu]# wget http://220.181.111.148 &>/dev/null && echo "Host service running."
Host service running.

上面命令中使用的命令wget用于检查服务器是否能正常提供服务。

3、括号

Linux系统提供了两个括号:圆括号“()”和花括号“{}”。使用方法相同,功能却不一样。

括号的基本格式:

(command1;command2;command3…)

{command1;command2;command3…}

Linux系统遇到括号时,会按顺序先执行括号内的命令,直到括号内的所有命令执行结束,然后再返回执行其他命令。

花括号的使用方法与圆括号基本一致,不同的是花括号内的所有命令都会被放入子shell中执行。

提示:通常将括号与命令逻辑操作符配合使用,以达到执行多条命令的目的。

用法示例:

下面是一个使用圆括号监控系统的例子:

[root@localhost zhu]# ping 222.22.22.22 -c3 &>/dev/null || (echo "Host network connection is lost." | tee network_info;mail -s "network error" root <network_info;rm -rf network_info)
Host network connection is lost.
posted @ 2013-12-06 11:08  ITtecman  阅读(1123)  评论(0编辑  收藏  举报