Linux 连续运行多条命令

每条命令使用";"隔开。则不管前边的命令运行成功与否都会继续运行下一条命令
这里,有益将第二条命令中的echo多写了一个o。命令运行出错,但并不影响兴许命令的运行
能够这么想,假设用分号来间隔命令,就相当于将命令分隔在了不同的行,不管前一行的命令成功或失败,都不影响下一行命令的运行。


$ echo 1; echoo 2; echo 3; echo 4
1
-bash: echoo: command not found
3
4

若命令间使用"&&"隔开,则仅仅有前边的命令运行成功了再会继续运行后边的命令
这里。有益将第二条命令中的echo多写了一个o,命令运行出错,echo 3便没有运行。因此echo4也没运行
$ echo 1 && echoo 2 && echo 3 && echo 4
1
-bash: echoo: command not found

若命令间使用"||"隔开。则仅仅有前边的命令运行失败了再回继续运行后边的命令
这里echo 1运行成功则没有继续运行后边的echo 2。继而没有运行echo 3,echo 4
echo 1 || echo 2 || echo 3 || echo 4
1
这里echoo 1运行失败,因此開始运行echo 2,运行成功。因而后边的echo 3。 echo4都没运行
echoo 1 || echo 2 || echo 3 || echo 4
-bash: echoo: command not found
2

依据以上规则分析几个比較特殊的样例,也即混合了集中分隔符的样例
echo 1运行成功了,紧接着后边有两个"||"因此echo 2, echo 3都没运行,后边遇到了&&。而这之前的命令组合被觉得是运行成功的,因此echo 4得以运行
$ echo 1 || echo 2 || echo 3 &&  echo 4 
1
4

echo 1运行成功了,继而运行echoo 2,运行失败,因此 echo 3不被运行。后边遇到了"||",而知之前的命令组合被觉得是运行失败的,因此echo 4得以运行

$  echo 1 && echoo 2 && echo 3 || echo 4
1
-bash: echoo: command not found
4

echo 1运行成功了,继而运行echoo 2。运行失败,因此 echo 3不被运行。后边遇到了";",相当于把后边的命令放到了新行。这种话不管怎样后边的命令都会运行。因此echo 4得以运行
$ echo 1 && echoo 2 && echo 3 ; echo 4
1
-bash: echoo: command not found
4

echoo 1运行失败,后边为"||"因此echo 2得以运行,echo 2运行成功,紧接着后边有两个"||"因此echo 3。echo 4没有运行,后边遇到了&&,而之前的命令组合被觉得是运行成功的,因此echoo5得以运行,运行错误发生,因此echo 6没有被运行,但后边是";"。所以不管怎样echo 7都会被运行
$ echoo 1 || echo 2 || echo 3 || echo 4 && echoo 5 && echo 6 ; echo 7
-bash: echoo: command not found
2
-bash: echoo: command not found
7
原文地址:https://www.cnblogs.com/jhcelue/p/6781732.html