Wie exportiere ich eine System-Scope-Umgebungsvariable in bash?

7

Ich muss eine Systemumgebungsvariable aus einem Bash-Skript setzen, das außerhalb des aktuellen Bereichs verfügbar wäre. Also würden Sie normalerweise Umgebungsvariablen wie folgt exportieren:

  

export MY_VAR = / opt / my_var

Aber ich brauche die Umgebungsvariable, um auf einer Systemebene verfügbar zu sein. Ist das möglich?

    
mbrevoort 20.11.2008, 22:29
quelle

4 Antworten

5

Das ist die einzige Art, wie ich weiß, was Sie wollen:

In foo.sh hast du:

%Vor%

Und wenn Sie den Wert der Variablen erhalten möchten, müssen Sie Folgendes tun:

%Vor%

Je nachdem, was Sie tun möchten und wie Sie es tun möchten, kann Douglas Leeders Vorschlag über die Verwendung der Quelle verwendet werden, aber es wird die gesamte Datei, die Funktionen und alle Quellen enthalten. Mit eval wird nur das Zeugs ausgewertet, das gecallt wird.

    
Jeremy Cantrell 20.11.2008, 22:55
quelle
13

Nicht wirklich - sobald Sie in einem Unterprozess laufen, können Sie Ihre Eltern nicht beeinflussen.

Es gibt zwei Möglichkeiten:

1) Rufen Sie das Skript auf, anstatt es auszuführen (siehe Quelle. ):

%Vor%

2) Lassen Sie das Skript die Exportbefehle ausgeben und prüfen Sie:

%Vor%

BEARBEITEN: Korrigiert die zweite Option als eval und nicht als Quelle. Opps.

    
Douglas Leeder 20.11.2008 22:37
quelle
1

Setzen Sie die Variable in / etc / profile (erstellen Sie die Datei falls nötig). Dadurch wird die Variable für jeden Bash-Prozess verfügbar.

    
nicerobot 21.11.2008 00:29
quelle
0

Setzen Sie die Variable in / etc / profile (erstellen Sie die Datei bei Bedarf). Dadurch wird die Variable für jeden Bash-Prozess verfügbar.

... zu jedem neuen Bash-Prozess ...

    
j0hnn0 15.07.2015 01:54
quelle

Tags und Links