GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

`$?` ? Ist es eine Variable?

Die Frage ist ziemlich einfach. Ich kann den Beendigungscode des vorherigen Befehls abrufen, indem ich $? verwende . Aber was genau ist das?

Ich glaube nicht, dass es sich um eine Variable handelt, da Sie keine Sonderzeichen im Namen der Variablen außer _ haben dürfen .

foo?foo=10

führt zu folgendem Fehler:foo?foo=10: command not found

Wenn es also keine Variable ist, was ist es dann? Gibt es andere wie es?

Akzeptierte Antwort:

Was ist das?

$? ist eine eingebaute Variable, die den Exit-Status eines Befehls, einer Funktion oder des Skripts selbst speichert.

$? liest den Exit-Status des zuletzt ausgeführten Befehls. Nachdem eine Funktion zurückgegeben wird, $? gibt den Exit-Status des letzten in der Funktion ausgeführten Befehls an. Das ist Bashs Art, Funktionen einen „Rückgabewert“ zu geben. Es gibt zurück bei Erfolg oder eine Ganzzahl im Bereich 1 - 255 auf Fehler.

Gibt es andere auch?

Ja, es gibt mehrere solcher eingebauten Variablen in Bash. Eine Liste finden Sie hier.
Siehe:http://www.tldp.org/LDP/abs/html/exit-status.html


Ubuntu
  1. Warum ist das Setzen einer Variablen vor einem Befehl in Bash legal?

  2. | Im Terminalkommando?

  3. Maven-Umgebungsvariable funktioniert nicht auf anderem Terminal?

  4. Wie kann man beenden, wenn ein Befehl fehlgeschlagen ist?

  5. Befehl ausführen, ohne ihn im Verlauf zu behalten

Bei Befehl unter Linux

Bash Exit-Befehl und Exit-Codes

Df-Befehl unter Linux

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

Kommando-Shell

Exportbefehl in Linux erklärt