在 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
然後,您可以測試第一個腳本的錯誤代碼,並避免執行以下腳本(如果它非零)。