Jeder kann mir die möglichen Rückkehrcodes für den Befehl rm -rf außer Null mitteilen, dh mögliche Rückkehrcodes für Fehlerfälle. Ich möchte einen detaillierteren Grund für den Fehler des Befehls kennen, im Gegensatz dazu, dass nur der Befehl fehlgeschlagen ist (Rückgabe anders als 0).
9
man ls
auf Ubuntu sind, erklärt es den Grund für den Exit-Status ungleich NullAntworten:
Um den Rückkehrcode anzuzeigen, können Sie
echo $?
in bash verwenden.Um die tatsächliche Bedeutung zu erkennen, verfügen einige Plattformen (wie Debian Linux) über die
perror
Binärdatei, die wie folgt verwendet werden kann:rm -rf
Unterdrückt die meisten Fehler automatisch. Der wahrscheinlichste Fehler, den Sie sehen, ist1
(Vorgang nicht zulässig). Dies tritt auf, wenn Sie nicht über die Berechtigung zum Entfernen der Datei verfügen.-f
unterdrückt absichtlich die meisten Fehlerquelle
perror
. Auf meinem System wird es mit MySQL geliefert.strace
teilt Ihnen mit, ob ein Systemaufruf fehlschlägt. Wenn Sie sich jedoch nicht die Quelle ansehen, wissen Sie nicht, wie sich der Systemaufruf auf den Programm-Exit-Status bezieht (z. B. wenn Sie ausgeführt werden-f
,ENOENT
wird er unterdrückt). Daher ist das hier nicht relevantschnappte sich Coreutils von Git ....
Beim Blick auf den Ausgang sehen wir ...
Schauen wir uns nun die Statusvariable an ....
Es sieht so aus, als ob dort mit dem Exit-Status nicht viel los ist.
Ich sehe EXIT_FAILURE und EXIT_SUCCESS und sonst nichts.
also im Grunde 0 und 1 / -1
Versuchen Sie dies, um bestimmte exit () - Systemaufrufe und deren Auftreten in einem Prozessablauf anzuzeigen
ziemlich Einfach.
ref:
http://www.unix.com/man-page/Linux/EXIT_FAILURE/exit/
quelle
0 / >0
.I want to know more detailed reason for the failure of the command unlike just the command is failed(return other than 0)
sodass die Abstimmungen verständlich sind.if (!(flags & FILEUTILS_FORCE)) {
addieren einelse{printf("same error message as perror");}
Ich bin sicher , dass andere Implementierungen würde ähnlich sein, aber wenn nicht, könnte die Busybox-Version selbst erstellt und enthalten werden.