377 Stimmen

127 Rückgabecode von $?

Was bedeutet der Rückgabewert 127 von $? in UNIX.

535voto

Oldskool Punkte 33485

Der Wert 127 wird zurückgegeben von /bin/sh wenn der angegebene Befehl nicht in Ihrem PATH Systemvariable und es ist kein eingebauter Shell-Befehl. Mit anderen Worten, das System versteht Ihren Befehl nicht, weil es nicht weiß, wo es die Binärdatei finden kann, die Sie aufrufen wollen.

80voto

okigan Punkte 1499

Im Allgemeinen bedeutet dies:

127 - Befehl nicht gefunden

aber es kann auch bedeuten, dass der Befehl gefunden wird ,
sondern eine Bibliothek, die für den Befehl wird NICHT gefunden .

24voto

Anitha Mani Punkte 823

127 - command not found

Beispiel: $caat Die Fehlermeldung lautet

bash:

caat: Befehl nicht gefunden

Sie prüfen jetzt mit echo $?

12voto

apbianco Punkte 174

Eine Shell-Konvention besagt, dass ein erfolgreiches ausführbares Programm mit dem Wert 0 beendet werden sollte. Alles andere kann als Fehler interpretiert werden, sei es seitens der Bash oder der ausführbaren Datei, die Sie gerade ausgeführt haben. Siehe auch $PIPESTATUS und die AUSGANGSSTATUS Abschnitt der Bash-Manualseite:

   For  the shell’s purposes, a command which exits with a zero exit status has succeeded.  An exit status
   of zero indicates success.  A non-zero exit status indicates failure.  When a command terminates  on  a
   fatal signal N, bash uses the value of 128+N as the exit status.
   If  a command is not found, the child process created to execute it returns a status of 127.  If a com-
   mand is found but is not executable, the return status is 126.

   If a command fails because of an error during expansion or redirection, the exit status is greater than
   zero.

   Shell  builtin  commands  return  a  status of 0 (true) if successful, and non-zero (false) if an error
   occurs while they execute.  All builtins return an exit status of 2 to indicate incorrect usage.

   Bash itself returns the exit status of the last command executed, unless  a  syntax  error  occurs,  in
   which case it exits with a non-zero value.  See also the exit builtin command below.

9voto

falstro Punkte 32879

Er hat keine besondere Bedeutung, außer dass der letzte Prozess, der beendet wurde, dies mit einem Exit-Status von 127 tat.

Er wird jedoch auch von der Bash verwendet (vorausgesetzt, Sie verwenden die Bash als Shell), um Ihnen mitzuteilen, dass der Befehl, den Sie auszuführen versucht haben, nicht ausgeführt werden konnte (d.h. er wurde nicht gefunden). Es ist leider nicht sofort ersichtlich, ob der Prozess mit Status 127 beendet wurde oder ob er nicht gefunden werden konnte.

EDITAR:
Nicht sofort ableitbar, außer für die Ausgabe auf der Konsole, aber dies ist Stapelüberlauf, so dass ich davon ausgehen, dass Sie dies in einem Skript tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X