cd /tmp/abc/ab mv a.txt a.txt.bak mv a.txt.new a.txt chmod 777 a.txt 等價於 cd /tmp/abc/ab && mv a.txt a.txt.bak && mv a.txt.new a.txt && chmod 777 a.txt ...
cd /tmp/abc/ab
mv a.txt a.txt.bak
mv a.txt.new a.txt
chmod 777 a.txt
等價於
cd /tmp/abc/ab && mv a.txt a.txt.bak && mv a.txt.new a.txt && chmod 777 a.txt
詳細說明如下:
當我們需要一次執行多個命令的時候,命令之間需要用連接符連接,不同的連接符有不同的效果。
(1) ; 分號,沒有任何邏輯關係的連接符。當多個命令用分號連接時,各命令之間的執行成功與否彼此沒有任何影響,都會一條一條執行下去。
(2) || 邏輯或,當用此連接符連接多個命令時,前面的命令執行成功,則後面的命令不會執行。前面的命令執行失敗,後面的命令才會執行。
(3) && 邏輯與,當用此連接符連接多個命令時,前面的命令執行成功,才會執行後面的命令,前面的命令執行失敗,後面的命令不會執行,與 || 正好相反。
(4) | 管道符,當用此連接符連接多個命令時,前面命令執行的正確輸出,會交給後面的命令繼續處理。若前面的命令執行失敗,則會報錯,若後面的命令無法處理前面命令的輸出,也會報錯。