In der Bash-Datei myBig.sh
rufe ich zwei weitere Bash-Dateien wie folgt auf:
/bin/bash myBuildShortServer.sh
/bin/bash myStart.sh
Es ist Arbeit... aber es gibt ein Problem. Ich möchte anfangenmyStart.sh
erst nach Erfolgausführen myBuildShortServer.sh
.
Der Inhalt myBuildShortServer.sh
ist dieser:
mvn install -Pruntime -DskipTests=true -f pom-server.xml
Die Bash-Datei myBuildShortServer.sh
startet einfach Maven-Aufgaben (Ziele). Und wenn die Aufgaben erfolgreich abgeschlossen sind, wird in der Konsole smt wie folgt gedruckt:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 30.254 s
[INFO] Finished at: 2022-06-06T12:05:43+03:00
[INFO] ------------------------------------------------------------------
Also muss ich anfangenmyStart.sh
NURnach myBuildShortServer.sh
Erfolg beenden.
Ist es möglich?
Antwort1
Wenn das erste Skript nur aus dieser Zeile besteht, können Sie Folgendes versuchen:
myBuildShortServer.sh && myStart.sh
Natürlich sollten Sie die Skripte ausführbar machen:
chmod +x <name of the scripts>
Antwort2
Fügen Sie einem Code hinzu myBuildShortServer.sh
, den Fehlercode des Skripts mit dem Bash- exit
Befehl festzulegen, um den von zurückgegebenen Fehlercode mvn
wie folgt weiterzugeben:
mvn install ...
rc=$?
if [ $rc -ne 0 ] ; then
echo Could not perform mvn install, exit code [$rc]; exit $rc
fi
exit 0
Sie können dann den Fehlercode des ersten Skripts testen und die Ausführung des folgenden Skripts vermeiden, wenn dieser ungleich Null ist.