Chinaunix首页 | 论坛 | 博客
  • 博客访问: 202558
  • 博文数量: 37
  • 博客积分: 4624
  • 博客等级: 上校
  • 技术积分: 433
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-10 14:06
文章分类

全部博文(37)

文章存档

2012年(6)

2011年(25)

2008年(6)

我的朋友

分类: LINUX

2011-12-19 18:33:36

如果希望在成功地执行一个命令之后再执行另一个命令,或者在一个命令失败后再执行另一个命令,&&||可以完成这样的功能。

相应的命令可以是系统命令或shell脚本。

shell还提供了在当前shell或子shell中执行一组命令的方法,即使用{ }和()。

1.1.   使用&&

一般形式为:

命令1 && 命令2

&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;

换句话说,“如果这个命令执行成功&&那么执行这个命令”。

 

例如:

cp file.sort file.bak && rm file.sort

 

$ echo 111 >> file

$ echo aaa >> file

$ echo 222 >> file

$ cat file

111

aaa

222

$ sort file > file.sort && cat file.sort

111

222

aaa

 

1.2.   使用||

一般形式为:

命令1 || 命令2

如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);

或者换句话说,“如果这个命令执行失败了|| 那么就执行这个命令”。

 

例如:

$ cp file.sort file.bak || echo this is run...

cp: 无法获取"file.sort" 的文件状态(stat): 没有那个文件或目录

this is run...

$ touch file.sort

$ cp file.sort file.bak || echo this is run...

$

 

1.3.   ()和{ }

一般形式为:

(cmd1;cmd2;...;cmdN)

在子shell里执行一组命令

 

{cmd1;cmd2;...;cmdN }

在当前shell里执行一组命令

 

例如:

$ A=1;echo $A;{ A=2; };echo $A

1

2

 

$ A=1;echo $A;( A=2; );echo $A

1

1

阅读(734) | 评论(0) | 转发(0) |
0

上一篇:shell输入与输出

下一篇:正则表达式介绍

给主人留下些什么吧!~~