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

Wie setze ich eine Umgebungsvariable in der Befehlszeile und lasse sie in Befehlen erscheinen?

Wenn ich renne

export TEST=foo
echo $TEST

Es gibt foo.

aus

Wenn ich renne

TEST=foo echo $TEST

Es tut nicht. Wie kann ich diese Funktionalität erhalten, ohne den Export oder ein Skript zu verwenden?

Akzeptierte Antwort:

Dies liegt daran, dass die Shell die Variable in der Befehlszeile vorher erweitert es führt den Befehl tatsächlich aus und zu diesem Zeitpunkt existiert die Variable nicht. Wenn Sie

verwenden
TEST=foo; echo $TEST

es wird funktionieren.

export lässt die Variable in der Umgebung von nachfolgend ausgeführten Befehlen erscheinen (wie dies in der Bash funktioniert, siehe help export). ). Wenn die Variable nur in der Umgebung eines Befehls erscheinen soll, verwenden Sie das, was Sie versucht haben, d. h.:

TEST=foo your-application

Die Shell-Syntax beschreibt dies als funktional Äquivalent zu:

export TEST=foo
your-application
unset TEST

Einzelheiten finden Sie in der Spezifikation.

Interessant ist, dass der export Der Befehl schaltet das Export-Flag für die Variable name um . Wenn Sie also Folgendes tun:

unset TEST
export TEST
TEST="foo"

TEST exportiert, obwohl es zum Zeitpunkt des Exports nicht definiert war. Jedoch weiter unset sollte das export-Attribut daraus entfernen.


Linux
  1. Haben Sie eine Kuh an der Linux-Befehlszeile

  2. Linux-Umgebungsvariablen:Lesen und Festlegen auf einem Linux-VPS

  3. Wie weist man die Ausgabe eines Befehls einer Shell-Variablen zu?

  4. Wie setze ich eine Variable gleich der Ausgabe eines Befehls in Grub2?

  5. BlueZ:Wie man einen GATT-Server von der Kommandozeile aus einrichtet

So setzen und listen Sie Umgebungsvariablen in Linux auf

So fügen Sie der Warteschlange Linux-Befehle hinzu und führen sie einzeln aus

So setzen und löschen Sie Umgebungsvariablen unter Linux

So setzen Sie die Umgebungsvariable in Bash

Wie stelle ich den Standardbrowser über die Befehlszeile ein?

MySQL die Befehlszeile und Pager