2016-11-11 36 views
0

我有這樣一個bash文件;Bash - 如果有任何進程被殺死,不經過下一步就退出

./process1 
./process2 
./process3 
./process4 
./process5 

假設我運行這個bash腳本,並且process2由於某種原因被終止。沒有傳遞到process3,我直接想要退出。我怎樣才能管理這個?

感謝,

+0

你還應該考慮'make'可能是更適合這項任務的工具。 –

回答

1

你可以試試這樣:

./process1 && ./process2 && ./process3 && ./process4 && ./process5 
3

只是退出,如果非零退出代碼:

./process1 || exit 

等等...

bash的另一種方法,使用-e標誌:

#!/bin/bash 
set -e 

-e立即退出,如果退出命令用非零狀態。

+0

Downvote:明確檢查'$?'是初學者反模式。 shell的流控構造都在場景後面檢查這個變量;你幾乎不需要直接看它。做你所描述的正確方法就是'./process1 ||退出「(它具有額外的好處,即來自'process1'的退出代碼被傳播回調用者)。 – tripleee

+0

好點@tripleee。謝謝 – klashxx

+0

這很快。經過編輯的Downvote。 – tripleee

相關問題