Chinaunix首页 | 论坛 | 博客
  • 博客访问: 296412
  • 博文数量: 78
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 572
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-26 09:59
文章分类

全部博文(78)

文章存档

2015年(8)

2014年(70)

我的朋友

分类: 嵌入式

2014-01-10 23:09:14

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
阅读(1607) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~