Ich möchte den Befehl mvn clean in einem Bash-Skript ausführen. Aber ich möchte es in eine if-Aussage schreiben. Wenn die Bereinigung nicht korrekt ausgeführt wird, möchte ich das Bash-Skript mit einer Echo-Anweisung verlassen. Hier ist der Code, der das Problem verursacht: wenn [mvn sauber]; dann
Ich habe versucht, $ (mvn clean) in die if-Anweisung zu setzen, aber es gab zu viele Argumente, sagt das Terminal. Weiß jemand, ob das möglich ist? Danke!
Hier ist, was Sie wollen:
%Vor%Erläuterung:
$?
ist eine spezielle Shell-Variable , die den Exit-Code enthält (ob er erfolgreich beendet wurde, oder nicht) des unmittelbarsten kürzlich ausgeführten Befehls. -ne
ist eine Option für die test
[
. Es steht für "nicht gleich". Hier testen wir, ob der Exit-Code von mvn clean
nicht gleich null ist. echo "Maven Clean Unsucccessful!"
- Wenn dies der Fall ist, geben wir eine indikative Meldung aus und beenden das Skript selbst mit einem Fehlercode. Wenn Sie $(mvn clean)
erstellen, die stattdessen eine neue Subshell zum Ausführen von mvn clean
erzeugt, dann wird einfach alles ausgegeben, was in stdout
in dieser Subshell ausgegeben wurde von mvn clean
zu wo $(...)
in der Elternhülle.
Alternativ können Sie Folgendes tun:
%Vor%Was ist nur Kurzschrift syntaktischer Zucker für das gleiche zu tun.