在 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
然后,您可以测试第一个脚本的错误代码,如果它非零,则避免执行以下脚本。