mvn im Bash-Skript if-Anweisung

7

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!

    
grivera 30.11.2012, 19:20
quelle

2 Antworten

21

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.

    
sampson-chen 30.11.2012, 19:27
quelle
7

Zur Überprüfung des Exit-Status sind keine Klammern erforderlich:

%Vor%     
choroba 30.11.2012 19:28
quelle

Tags und Links