Was sind die Fehler-Exit-Werte für diff?
Auf die diff
Mann-Seite, die ich gefunden habe, diese exit-Werte:
0 No differences were found.
1 Differences were found.
>1 An error occurred.
Gibt es verschiedene exit-Werte über 1 für verschiedene Fehler?
InformationsquelleAutor der Frage sid_com | 2011-08-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kommt es auf Ihre
diff
Befehl. Mine (GNU diffutils 3.0) sagt:InformationsquelleAutor der Antwort Frédéric Hamidi
Gibt es vielleicht, oder es kann nicht sein, die verschiedenen Fehler-codes je nach der version von diff, die Sie verwenden. Wenn ich mich richtig erinnere, ist die standard-BSD-diff immer zurückgegebene exit-code 0, 1, oder 2.
Aber die manpage ist nicht mapping-alles, was das diff machen könnte, aber die Dokumentation, die Sie verwenden können, für die Verwendung von diff-Befehl. In einem shell-Skript, ich möchte wissen, ob die Dateien übereinstimmen (Ausfahrt = 0) oder nicht übereinstimmen (Ausfahrt = 1). Jedoch, in meinem shell-script, ich will auch wissen, dass der diff-Befehl selbst nicht funktioniert.
Vorstellen, wenn ich wurde gesagt, dass 2 gemeint ist die diff-Befehl fehlgeschlagen ist, aber eine neuere version der diff-Befehl hat eine Unterscheidung zwischen einer Datei, die Sie nicht Lesen können (exit = 2) und eine fehlende Datei (beenden = 3). Nun, Stell dir vor, ich habe die folgenden in einer früheren version des diff-Befehl, aber
$file2
gar nicht gibt:In dem obigen code, ich habe für den Fehler code 2 und 1, aber nicht 3. Also, statt das erkennen einer fehlenden Datei, gehe ich davon aus, dass die Dateien übereinstimmen.
Ist die manpage zu versuchen, um sicherzustellen, dass künftige upgrades des OS führen nicht die meisten Ihrer shell-Skripts plötzlich Versagen. Es ist der Grund, warum es einen separaten
awk
undnawk
Befehl und eine separategrep
undegrep
Befehl.*Aktualisiert als pro-Kommentar von @chus.
InformationsquelleAutor der Antwort David W.
In meinem Fall diff zurückgegeben 127, suchten, und finden in der tldp.org "Exit-Codes Mit Speziellen Bedeutungen"
127 "Befehl nicht gefunden" illegal_command problem mit $PATH oder ein Tippfehler.
Habe ich einen falschen Pfad zu diff. 🙂
Schriftart: tldp.org/LDP/abs/html/exitcodes.html
InformationsquelleAutor der Antwort Rossano Fenner