2009-02-25 2 views
4

Ich führe ein Java-Programm aus einem Bash-Skript aus. Wenn das Java-Programm eine ungeprüfte Ausnahme auslöst, möchte ich das Bash-Skript stoppen, anstatt das Skript die Ausführung des nächsten Befehls fortzusetzen.Stoppen Sie das Bash-Skript, wenn die Option Java-Ausnahme nicht aktiviert ist

Wie geht das? Mein Skript sieht ungefähr so ​​aus:

#!/bin/bash 

javac *.java 

java -ea HelloWorld > HelloWorld.txt 

mv HelloWorld.txt ./HelloWorldDir 

Antwort

10

Die Ausnahme abfangen und dann System.exit aufrufen. Überprüfen Sie den Rückkehrcode im Shell-Skript.

3
#!/bin/bash 

function failure() 
{ 
    echo "[email protected]" >&2 
    exit 1 
} 

javac *.java || failure "Failed to compile" 

java -ea HelloWorld > HelloWorld.txt || failure "Failed to run" 

mv HelloWorld.txt ./HelloWorldDir || failure "Failed to move" 

Auch müssen Sie sich mit einem Nicht-Null-Exit-Code, dass java Ausgänge gewährleisten, aber das ist sehr wahrscheinlich für eine abgefangene Ausnahme.

Verlassen Sie das Shell-Skript grundsätzlich, wenn der Befehl fehlschlägt.

11

In Übereinstimmung mit Tom Hawtin,

Um den Exit-Code des Java-Programms zu überprüfen, in dem Bash-Skript:

#!/bin/bash 

javac *.java 

java -ea HelloWorld > HelloWorld.txt 

exitValue=$? 

if [ $exitValue != 0 ] 
then 
exit $exitValue 
fi 

mv HelloWorld.txt ./HelloWorldDir 
Verwandte Themen