只有當上一個 bash 檔案成功時,如何啟動下一個 bash 檔案?

只有當上一個 bash 檔案成功時,如何啟動下一個 bash 檔案?

在 bash 文件中,myBig.sh我呼叫另外兩個 bash 文件,如下所示:

/bin/bash myBuildShortServer.sh
/bin/bash myStart.sh

這是工作……但有一個問題。我想開始myStart.sh 只有在成功之後執行myBuildShortServer.sh

內容myBuildShortServer.sh是這樣的:

mvn install -Pruntime -DskipTests=true -f pom-server.xml

bash 檔案myBuildShortServer.sh只是啟動maven 任務(目標)。當成功完成任務時,在控制台 smt 中列印如下:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  30.254 s
[INFO] Finished at: 2022-06-06T12:05:43+03:00
[INFO] ------------------------------------------------------------------

所以我需要開始myStart.sh 僅有的myBuildShortServer.sh成功完成後。

是否可以?

答案1

如果第一個腳本只有這一行,您可以嘗試以下操作:

 myBuildShortServer.sh && myStart.sh

當然,您應該使腳本可執行:

chmod +x <name of the scripts>

答案2

新增myBuildShortServer.sh程式碼以使用 bash 命令設定腳本的錯誤代碼exit,以傳播 所傳回的錯誤代碼mvn,如下所示:

mvn install ...
rc=$?
if [ $rc -ne 0 ] ; then
  echo Could not perform mvn install, exit code [$rc]; exit $rc
fi
exit 0

然後,您可以測試第一個腳本的錯誤代碼,並避免執行以下腳本(如果它非零)。

相關內容