bash ファイルでは、myBig.sh
次のように別の 2 つの 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 タスク (目標) を開始するだけです。タスクが成功すると、コンソールに次のように出力されます。
[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
その後、最初のスクリプトのエラー コードをテストし、ゼロ以外の場合は次のスクリプトの実行を回避できます。