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?
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.
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.