Ich habe eine Bash-Datei mit Befehlen zum Zusammenführen von PCAP-Dateien. Ich möchte wissen, ob es sowieso gibt, um sicherzustellen, dass eine Zeile in Bash läuft oder nicht. Wie in der Windows Bat-Datei haben wir% ErrorLevel% ¨ Sagen Sie einen Befehl
touch -r dcn_file "${dir_dcn}"/"${TAG1_dcn}".pcap
Wie stelle ich sicher, dass dies ausgeführt wurde?
bash
shell
error-handling
Jishnu U Nair
quelle
quelle
echo $?
den Rückgabewert des zuletzt ausgeführten Befehls verwendenset -e
, um Bash bei einem Fehler automatisch zu beenden. Sie können auch zusätzlichen Code zuweisentrap
, der im Fehlerfall (oder nur am Ende, unabhängig von Fehlern) ausgeführt werden sollAntworten:
Muscheln sind so gebaut, dass sie so etwas leicht machen.
Sie werden gelegentlich einen proprietären Befehl finden, der bei Erfolg nicht mit 0 und bei Misserfolg ungleich Null beendet wird, aber zum Glück sind diese Abberationen fast ausgestorben.
quelle
grep
und seinen Varianten, wobei 0 für gefundene Übereinstimmung steht, 1 für nicht gefundene Übereinstimmung steht ("Fehler"?) Und Codes über 2 Fehler anzeigen.Die Bash-Variable enthält
$?
den Exit-Status des letzten Befehlslaufs. Bei typischen Programmen ist der Wert0
Erfolg und jeder andere Wert ist Fehler. Ein spezifischer Rückkehrcode sollte in den Manpages der betreffenden Programme dokumentiert werden.Sie können Code verwenden wie:
Um den Rückkehrcode zu testen und dann eine Fehlermeldung auszudrucken und ein Skript mit demselben Fehlercode zu beenden.
quelle
nice
diesen Morgen las , konnte der Befehl den Wert der Freundlichkeit des Prozesses anstelle von 0 in der alten Version zurückgeben