В 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
коду установку кода ошибки скрипта с помощью exit
команды bash, чтобы распространить код ошибки, возвращаемый mvn
, например:
mvn install ...
rc=$?
if [ $rc -ne 0 ] ; then
echo Could not perform mvn install, exit code [$rc]; exit $rc
fi
exit 0
Затем вы можете проверить код ошибки первого скрипта и избежать выполнения следующего скрипта, если он не равен нулю.