SHELL编程之&& ||

来源:互联网 发布:c语言比较4个数大小 编辑:程序博客网 时间:2024/04/28 01:25
1. 使用&&
使用&&的一般形式为: 
命令1 && 命令2
这种命令执行方式相当地直接。&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。 
这里有一个使用&&的简单例子: 
$ cp justing.doc justing.bak && echo “if you are seeing this then cp was OK”
if you are seeing this then cp was OK
在上面的例子中,&&前面的拷贝命令执行成功,所以&&后面的命令(echo命令)被执行。 
再看一个更为实用的例子: 
$ mv /apps/bin /apps/dev/bin && rm -r /apps/bin
在上面的例子中,/apps/bin目录将会被移到/apps/dev/bin目录下,如果它没有被成功执行,就不会删除/apps/bin目录。 
在下面的例子中,文件quarter_end.txt首先将被排序并输出到文件quarter.sorted中,只有这一命令执行成功之后,文件quarter.sorted才会被打印出来: 
$ sort quarter_end.txt > quarter.sorted && lp quarter.sorted

2. 
使用||
使用||的一般形式为: 
命令1 || 命令2
||的作用有一些不同。如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);或者换句话说,“如果这个命令执行失败了|| 那么就执行这个命令”。 
这里有一个使用||的简单例子: 
$ cp wopper.txt wopper.bak || echo “if you are seeing this cp failed”
cp: wopper.txt: No such file or directory
if you are seeing this cp failed
在上面的例子中,拷贝命令没有能够被成功执行,因此||后面的命令被执行。 
这里有一个更为实用的例子。我希望从一个审计文件中抽取第1个和第5个域,并将其输出到一个临时文件中,如果这一操作未成功,我希望能够收到一个相应邮件: 
$ awk ‘{print $5}’ acc.qtr > qtr.tmp || echo “Sorry the payroll extraction didn’t work” | mail dave
在这里不只可以使用系统命令;这里我们首先对month_end.txt文件执行了一个名为comet的shell脚本,如果该脚本未执行成功,该shell将结束。 
$ comet month_end.txt || exit
阅读(68) | 评论(0) | 转发(0) |
0

上一篇:Linux脚本(shell)编程(四) 判断条件

下一篇:Qt Creator编写LED控制界面

相关热门文章
  • shell中字符串操作
  • shell中的特殊字符
  • stagefright与opencore对比
  • linux守护进程的几个关键地方...
  • Android常用的一些make命令...
  • 我的ChinaUnix博客被锁定了,...
  • 虚拟机中ubuntu无线连接问题...
  • IBM DS3400 盘阵怎么查看是单...
  • 启动auditd时,报错如下,怎么...
  • CGSL系统中root密码正确,但无...
给主人留下些什么吧!~~
原创粉丝点击