如果前一个文件成功,如何启动下一个 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

然后,您可以测试第一个脚本的错误代码,如果它非零,则避免执行以下脚本。

相关内容