全部博文(37)
分类: LINUX
2011-12-19 18:33:36
如果希望在成功地执行一个命令之后再执行另一个命令,或者在一个命令失败后再执行另一个命令,&&和||可以完成这样的功能。
相应的命令可以是系统命令或shell脚本。
shell还提供了在当前shell或子shell中执行一组命令的方法,即使用{ }和()。
1.
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 |