(set export attribute for variables)
Das in die POSIX-Shell sh eingebaute Kommando export exportiert die angegebene Shell-Variable. Jedes Kommando kennt dann den Namen dieser Variablen und kann auf ihren Wert zugreifen.
Wenn Sie die Shell beenden, in der Sie Variablen definiert und exportiert haben, sind diese Variablen wieder gelöscht. Deshalb sollten Sie häufig verwendete Variablen in Ihrer Datei $HOME/.profile definieren und exportieren.
Stellungsparameter und Shell-Funktionen können nicht exportiert werden. Einige Standard-Variablen der Shell sind auch in Subshells verfügbar, ohne exportiert worden zu sein. Dazu gehören z.B. HOME, IFS, PATH, PS1, PS2, usw. Wenn Sie einer dieser Variablen einen anderen Wert zuweisen und der geänderte Wert auch in jeder Subshell gelten soll, dann müssen Sie diese Variable mit export exportieren. Sonst gilt in jeder Subshell wieder der Standard-Wert.
Das eingebaute sh-Kommando set gibt alle Variablen mit ihrem jeweiligen Wert aus, die in der aktuellen Shell definiert sind, also auch solche, die Sie nicht exportiert haben. Das Kommando export gibt die Namen und Werte aller Shell-Variablen aus, die an jedes aufgerufene Kommando und jede Subshell weitergereicht werden.
Syntax
Format 1: | export[ name[=wert]]... |
Format 2: | export -p |
Name der Shell-Variablen, die Sie exportieren wollen. Sie können dieser Variablen auch erst nach dem Aufruf von export einen Wert wert zuweisen. Sie können beliebig viele Shell-Variablen angeben, jeweils getrennt durch ein Leerzeichen. name nicht angegeben:
Wird -p gesetzt, so gibt export die Namen und die Werte aller Variablen, die exportiert wurden, im folgenden Format auf der Standard-Ausgabe aus:
Die Option -p ermöglicht einen übertragbaren Zugriff auf die Werte, die gesichert und später wiederhergestellt werden können (z.B. mit einer Punkt-Prozedur). Die Shell formatiert die Ausgabe und berücksichtigt dabei die richtige Verwendung der Anführungszeichen. Daher ist die Ausgabe für eine Wiedereingabe an die Shell bei Kommandos, die die gleichen Export-Ergebnisse erzielen, geeignet. |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos export: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Beispiel
Die Shell-Prozedur ps1 soll den Wert der Variablen PS1 ausgeben. Die Prozedur hat folgenden Inhalt: : Aufruf mit sh ps1 echo PS1: $PS1 Der folgende Bildschirm-Dialog soll zeigen, warum die Shell-Variable PS1 exportiert werden muss:
Wenn Sie eine Shell-Variable definieren, ist sie nur der aktuellen Shell bekannt. Da jede Shell-Prozedur von einer Subshell ausgeführt wird, muss eine Variable für Shell-Prozeduren exportiert werden. |
Siehe auch
env, set |