Umgebungsvariable _

Umgebungsvariable _

Ich sende einen printenv-Befehl in der Befehlszeile und sehe, dass eine der Variablen die folgende ist:

_=/usr/bin/printenv

Ich mache jetzt folgendes:

mo@mo-Toshiba ~/Workspace $ printenv _
/usr/bin/printenv

aber wenn ich versuche, echo für diese Variable aufzurufen, erhalte ich Folgendes:

mo@mo-Toshiba ~/Workspace $ echo $_
_

Was ist los? Warum behandelt Echo das nicht als Variable? (also wie $PATH oder $PWD)

Antwort1

Es ist eine Variable. DieShell-Variable_wird von der Shell jedes Mal aktualisiert, wenn Sie einen Befehl ausführen, um das letzte Argument des vorherigen Befehls zu enthalten.

Dies ist nicht sehr oft nützlich, ermöglicht Ihnen jedoch das Schreiben eines Alias ​​oder einer Funktion, um etwas für „dieselbe Datei (oder ein anderes Objekt) wie der letzte Befehl“ auszuführen.

Die Variable wird auch zur Umgebung von Unterprozessen hinzugefügt. Dort enthält sie den Namen des Befehls, wie er in der Shell übergeben wurde (vor PATHder Suche).

verwandte Informationen