Linux連續執行多條命令

引自:這裏html

每條命令使用";"隔開,則不管前邊的命令執行成功與否都會繼續執行下一條命令
這裏,故意將第二條命令中的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
4bash

echo 1執行成功了,繼而執行echoo 2,執行失敗,所以 echo 3不被執行,後邊遇到了"||",而知以前的命令組合被認爲是執行失敗的,所以echo 4得以執行htm

$ 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
7get

相關文章
相關標籤/搜索