UNIX-Exportbefehl [geschlossen]

158

Ich versuche die Verwendung von Befehlen zu verstehen export.

Ich habe es versucht man export, aber es gibt kein Handbuch für diesen Befehl.

Kann mir bitte jemand helfen, die Verwendung von exportUNIX zu verstehen ?

Jake
quelle
Es ist sehr seltsam, dass es keine Manpage dafür gibt. Ich sehe auch keinen.
Pinocchio

Antworten:

226

Wenn Sie ein Programm ausführen, erbt das untergeordnete Programm seine Umgebungsvariablen vom übergeordneten Programm. Zum Beispiel , wenn $HOMEfestgelegt ist /rootin den übergeordneten dann dem Kind $HOMEVariable wird auch festgelegt /root.

Dies gilt nur für Umgebungsvariablen, die für den Export markiert sind. Wenn Sie eine Variable in der Befehlszeile wie festlegen

$ FOO="bar"

Diese Variable ist in untergeordneten Prozessen nicht sichtbar. Nicht, wenn Sie es exportieren:

$ export FOO

Sie können diese beiden Aussagen in bash (aber nicht in old-school sh) zu einer einzigen kombinieren:

$ export FOO="bar"

Hier ist ein kurzes Beispiel, das den Unterschied zwischen exportierten und nicht exportierten Variablen zeigt. Um zu verstehen, was passiert, wissen Sie, dass sh -cein untergeordneter Shell-Prozess erstellt wird, der die Umgebung der übergeordneten Shell erbt.

$ FOO=bar
$ sh -c 'echo $FOO'

$ export FOO
$ sh -c 'echo $FOO'
bar

Hinweis: Um Hilfe zu integrierten Shell-Befehlen zu erhalten, verwenden Sie help export. Integrierte Shell-Befehle sind Befehle, die Teil Ihrer Shell sind und keine unabhängigen ausführbaren Dateien wie /bin/ls.

John Kugelman
quelle
16

Unix

Die Befehle env, set und printenv zeigen alle Umgebungsvariablen und ihre Werte an. env und set werden auch zum Festlegen von Umgebungsvariablen verwendet und häufig direkt in die Shell integriert. printenv kann auch zum Drucken einer einzelnen Variablen verwendet werden, indem dieser Variablenname als einziges Argument für den Befehl angegeben wird.

Unter Unix können auch die folgenden Befehle verwendet werden, hängen jedoch häufig von einer bestimmten Shell ab.

export VARIABLE=value  # for Bourne, bash, and related shells
setenv VARIABLE value  # for csh and related shells

Sie können einen Blick haben diese an

user931841
quelle
4
Willkommen bei StackOverflow. Beachten Sie, dass die klassische Bourne-Shell Folgendes erfordern würde: VARIABLE=value; export VARIABLEanstatt sie sofort zuzuweisen und zu exportieren. Der setBefehl in C Shell gilt eher für Shell-Variablen als für Umgebungsvariablen. setenvist das Gegenstück zu export. Der setBefehl in von Bourne abgeleiteten Shells druckt alle Variablen, nicht nur exportierte (Umgebungs-) Variablen. Zumindest in der envVergangenheit ist der Befehl von der Shell getrennt (kein integrierter Befehl), obwohl er leicht in einen integrierten Befehl umgewandelt werden kann. Es legt die Umgebung für einen bestimmten Befehl fest, nicht für die Shell, die ihn ausführt.
Jonathan Leffler
4

exportist ein integrierter Befehl für die bashShell und andere Bourne-Shell-Varianten . Es wird verwendet, um eine Shell-Variable für den Export in untergeordnete Prozesse zu markieren.

David J. Liszewski
quelle
0

exportwird zum Festlegen von Umgebungsvariablen verwendet. Beispielsweise:

export EDITOR=pico

Legt Ihren Standardtexteditor als picoBefehl fest.

Ikarus
quelle