&& 与 || :
rm 04 && echo "success" : 删除04文件成功后在执行后面的语句
rm 02 2>/dev/null || echo "Fail" :删除02文件失败在执行后面语句
(rm 0 && echo "Success") 2>/dev/null || (echo "Fail";exit):如果0文件删除成功就打印success,失败了就打印Fail,并退出
(rm 137 && echo "Success") 2>/dev/null || (echo "Fail" ; ll ) :删除成功不再执行后面的,删除失败打印Fail并列出所在目录的文件
使用& &的一般形式为:
命令1 && 命令2
这种命令执行方式相当地直接。& &左边的命令(命令1)返回真(即返回0,成功被执行)
后,& &右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功& &那么执
行这个命令”。
使用|||的一般形式为:
命令1 || 命令2
||的作用有一些不同。如果| |左边的命令(命令1)未执行成功,那么就执行| |右边的命令
(命令2);或者换句话说,“如果这个命令执行失败了|| 那么就执行这个命令”。
如果希望把几个命令合在一起执行,s h e l l提供了两种方法。既可以在当前s h e l l也可以在
子s h e l l中执行一组命令。
为了在当前s h e l l中执行一组命令,可以用命令分隔符隔开每一个命令,并把所有的命令
用圆括号()括起来。
它的一般形式为:
(命令1;命令2;. . .)
如果使用{ }来代替(),那么相应的命令将在子s h e l l而不是当前s h e l l中作为一个整体被执
行,只有在{ }中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子s h e l l中执
行,否则在当前s h e l l执行。它的一般形式为:
{命令1;命令2;. . . }
我很少单独使用这两种方法。我一般只和& &或| |一起使用这两种方法。