&&运算符:
command1  && command2

&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。
(cmd1;cmd2;...;cmdN)      # 在一个子shell里执行一组命令
{cmd1;cmd2;...;cmdN}     #  在当前shell里执行一组命令
 
||运算符:
command1 || command2

||则与&&相反。如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);或者换句话说,“如果这个命令执行失败了||那么就执行这个命令。

()运算符:
为了在子shell中执行一组命令,可以用命令分隔符(即",")隔开每一个命令,并把所有的命令用圆括号()括起来。
 
{}运算符:
如果使用{}来代替(),那么相应的命令将在当前shell中作为一个整体被执行
$ A=1;echo $A;{ A=2; };echo $A
1
2

$ A=1;echo $A;( A=2; );echo $A
1
1
 
{ A=2; }改变了当前shell变量的值
( A=2; )未改变当前shell变量的值