前の bash ファイルが成功した場合にのみ次の bash ファイルを開始するにはどうすればよいですか?

前の bash ファイルが成功した場合にのみ次の bash ファイルを開始するにはどうすればよいですか?

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.shMaven タスク (目標) を開始するだけです。タスクが成功すると、コンソールに次のように出力されます。

[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.shbash コマンドを使用してスクリプトのエラー コードを設定するコードを追加します。exitmvn

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

その後、最初のスクリプトのエラー コードをテストし、ゼロ以外の場合は次のスクリプトの実行を回避できます。

関連情報