详解&&、()、||决定linux命令的执行顺序
在执行某个命令时,有时需要依赖前面的命令是否执行成功。假如你想通过ssh命令复制很多数据文件到另外的机器后,删除所有源有文件,所以在删除源有文件之前首先要确定复制是不是执行成功。只要执行复制成功才可以删除,否则后果......
一、&&
1.格式
command1&&command2
2.含义
&&左边的command1执行成功(返回0表示成功)后,&&右边的command2才能被执行。
3.实例
(1)当把文件sql.txt复制一份为sql.bak.txt成功,然后显示副本sql.bak.txt
[root@RHEL5shell]#cpsql.txtsql.bak.txt&&catsql.bak.txt DatabaseSize(MB)DateCreated -------------------------------------------- GOSOUTH224412/11/97 TRISUD56328/9/99
(2rowsaffected)
(2)当文件facebook.txt经过排序并保存在facebook.txt.sorted被执行成功,打印facebook.txt.sorted文件
sortfacebook.txt>facebook.txt.sorted&&lpfacebook.txt.sorted
二、||
1.格式
command1||command2
2.含义
如果||左边的command1执行失败(返回1表示失败),就执行&&右边的command2。
3.实例
(1)打印1111.txt的第一列内容,若执行不成功则执行显示facebook.txt的内容
[root@RHEL5shell]#awk'{print$1}'1111.txt||catfacebook.txt awk:cmd.line:1:fatal:cannotopenfile`1111.txt'forreading(Nosuchfileordirectory) google1105000 baidu1005000 guge503000 sohu1004500
(2)当打印1111.txt的第一列内容得命令被成功执行,则不执行打印facebook.txt的命令
[root@RHEL5shell]#awk'{print$1}'facebook.txt||catfacebook.txt google baidu guge sohu
三、()
如果想执行几个命令,则需要用命令分隔符分号隔开每个命令,并使用圆括号()把所有命令组合起来。
结合||和&&可以实现复杂的功能。
1.格式(command1;command2;command3;...)
2.实例
(1)使用多个命令,如果sort命令执行成功,先将排序后的文件备份到/root/backup/目录下,然后再打印
sortfacebook.txt>facebook.txt.sorted&&(cpfacebook.txt.sorted/root/backup/facebook.txt.sorted;lpfacebook.txt.sorted)
(2)打印facebook.txt文件失败就发邮件告知root用户,并关机
lpfacebook.txt.sorted||(echo"Itwasnotsubmittedsuccuessfully"|mailroot;init0)
总结
以上所述是小编给大家介绍的&&、()、||决定linux命令的执行顺序,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。