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

Festlegen von Linux-Umgebungsvariablen

Dies ist ein Auszug aus der Bash-Manpage:

export [-fn] [name[=wort]] ...
export-p
Die gelieferten Namen sind für den automatischen Export in die Umgebung nachfolgend ausgeführter Befehle markiert. Wenn die Option -f angegeben ist, beziehen sich die Namen auf Funktionen...

Wenn Sie die Variable nur in der aktuellen Umgebung benötigen, ist es nicht notwendig, export.

zu verwenden
var=value

Bearbeiten:

Ohne Export:nur aktuelle Umgebung. Mit Export:aktuelle Umgebung und untergeordnete Umgebungen.

Hier ist eine Demonstration der Auswirkungen des Exports auf die Verfügbarkeit einer Variablen in einer untergeordneten Umgebung und dass Änderungen in der untergeordneten Umgebung die übergeordnete Umgebung nicht beeinflussen:

$ var1=123
$ export var2=456
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []
$ var3=789 bash -c 'echo "child [$var1] [$var2] [$var3]"; var1=111; var2=222; var3=333; echo "child [$var1] [$var2] [$var3]"'
child [] [456] [789]
child [111] [222] [333]
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []

Nach dem ersten Echo (echo "parent..." ) sehen Sie "123" und "456", weil beide var1 und var2 sind im aktuellen Umfeld aktiv. Sie sehen keinen Wert für var3 weil es noch nicht eingestellt ist.

Nach der Zeile, die mit „var3=... " Sie sehen keinen Wert für var1 weil es nicht exportiert wurde. Sie tun siehe einen Wert für var2 weil es war exportiert. Sie sehen einen Wert für var3 weil es nur für die untergeordnete Umgebung festgelegt wurde .

(bash -c entspricht dem Ausführen eines Skripts mit dem Inhalt des Arguments für -c Möglichkeit. Ein Skript oder eine andere ausführbare Datei oder in diesem Fall das Argument für bash -c wird ein Kind der aktuellen Umgebung, die folglich natürlich der Elternteil des Kindes ist.)

Im "Skript" werden die Werte der Variablen geändert. Es gibt nun diese neuen Werte aus.

Sobald das "Skript" beendet ist, kehrt die Ausführung zur übergeordneten Umgebung (in diesem Fall zur Befehlszeile) zurück. Nach dem letzten Echo sehen Sie die ursprünglichen Werte, da die in der untergeordneten Umgebung vorgenommenen Änderungen die übergeordnete Umgebung nicht beeinflussen.


Das sagst du

Ich verwende immer den Exportbefehl, um die Umgebungsvariable zu setzen

So wie Sie das formuliert haben, klingt es so, als wollten Sie wirklich fragen, wie Sie eine Umgebungsvariable dauerhaft machen. Dazu müssten Sie Ihren export VAR="foo" platzieren -Anweisung in Ihrer $HOME/.bash_profile-Datei (wenn Sie bash verwenden). Wenn Sie möchten, dass diese Umgebungsvariable für alle Benutzer außer root bestehen bleibt, fügen Sie sie zu /etc/profile hinzu. Wenn Sie möchten, dass es auch für den Root-Benutzer hinzugefügt wird, legen Sie es in /root/.bash_profile fest.

Dies funktioniert für alle Login-Shells, bei denen Bash die Shell der Wahl ist. Für Nicht-Login-Shells müssen Sie .bashrc verwenden. Für andere Muscheln habe ich keine Erkenntnisse zu bieten :D


Linux
  1. Festlegen von Shell-Umgebungsvariablen | BASH-Shell

  2. So setzen/erstellen Sie Umgebungs- und Shell-Variablen in Linux

  3. Linux – Sind Umgebungsvariablen für nicht privilegierte Benutzer unter Linux sichtbar?

  4. Linux-Exportbefehl

  5. Benutzerumgebungsvariablen Mit „su“ und „sudo“ unter Linux

So setzen/löschen Sie Umgebungsvariablen in Linux

So setzen und löschen Sie Umgebungsvariablen unter Linux

Einfache Schritt-für-Schritt-Anleitung zu Linux-Umgebungsvariablen

Exportbefehl unter Linux

Linux-Umgebungsvariablen

Einrichten einer glänzenden Entwicklungsumgebung in Linux unter Windows 10