Überprüfen Sie den Exit-Code in Bash
Dieses Tutorial beschreibt mehrere Methoden zum Abrufen und Anzeigen des Exit-Status einer Anweisung in Bash. Wir werden zuerst die Verwendung einer einfachen if
-Anweisung zum Abrufen des Ausgangsstatus besprechen, danach werden wir Alternativen und Kurzschreibweisen zum Abrufen des Ausgangsstatus besprechen.
Überprüfen Sie den Exit-Code in Bash
Der Exit-Status ist im Wesentlichen eine Ganzzahl, die uns sagt, ob der Befehl erfolgreich war oder nicht. Nicht intuitiv zeigt ein Exit-Status von 0
einen Erfolg an, und jeder Wert ungleich Null zeigt einen Fehler/Fehler an.
Diese nicht intuitive Lösung ermöglicht unterschiedliche Fehlercodes, um unterschiedliche Fehler darzustellen. Wenn beispielsweise ein Befehl nicht gefunden wird, wird der Exit-Status 127
zurückgegeben.
Der Weg, um den Exit-Code in Bash zu überprüfen, ist die Verwendung des $?
Befehl. Wenn Sie den Exit-Status ausgeben möchten, können Sie dies tun durch:
# your command here
testVal=$?
echo testVal
Wir wissen, dass Exit-Codes ungleich Null verwendet werden, um Fehler zu melden. Wenn wir allgemein nach Fehlern suchen wollen, können wir ein kleines Skript mit dem betreffenden Befehl und einer if
-Anweisung schreiben, die prüft, ob der Exit-Code einen Fehler (nicht Null) enthält oder ob der Exit-Code eine ordnungsgemäße Ausführung anzeigt .
# your command here
testVal=$?
if [$testVal -ne 0]; then
echo "There was some error"
fi
exit $testVal
Eine Kurzschreibweise kann mit einem test
auf dem $?
Befehl. Ein minimales Beispiel für diesen Code kann sein:
# your command here
test $? -eq 0 || echo "There was some error"
Zum besseren Verständnis der obigen Aussage können wir sie erweitern.
# your command here
exitStat = $?
test $exitStat -eq 0 && echo "No error! Worked fine" || echo "There was some error";
exit $exitStat
Oben sehen wir die Meldung "No error! Worked fine"
im Falle einer erfolgreichen Ausführung und die Fehlermeldung im Falle eines Fehlers.
Wichtige Hinweise und mögliche Alternativlösungen
Wenn Exit-Codes verwendet werden, um zu sehen, ob der Befehl korrekt ausgeführt wird oder nicht, haben wir eine viel einfachere Alternative.
# define your_command here
# your_command = enter a command here
if your_command; then
echo command returned true
else
echo command returned an error
fi
In diesem Fall erhalten wir im Allgemeinen die gleiche Ausgabe wie bei den ersten paar Optionen. Darüber hinaus erfordert das Abrufen spezifischer Informationen über den Exit-Code oder das Abrufen des spezifischen Exit-Codes das Ausführen von $?
manuell.
Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn