(set environment for command execution)
Mit env können Sie sich die aktuellen Umgebungsvariablen und ihre Werte ausgeben lassen oder sie für ein Kommando verändern. env liest die aktuelle Umgebung ein, ändert sie entsprechend der Angabe name=wert und führt das Kommando dann in der veränderten Umgebung aus. Die schon vorhandenen Angaben für name und wert werden durch die neuen Angaben überschrieben und vor Ausführung des Kommandos der usprünglichen Umgebung hinzugefügt. Die neuen Angaben bilden zusammen mit den unveränderten Umgebungsvariablen die für die Ausführung von kommando gültige Umgebung.
Wenn kein Kommando angegeben ist, wird die durch env veränderte Umgebung ausgegeben.
Syntax
env[ -i| -][ name=wert]...[ kommando[ arg...]] |
Die ursprüngliche Umgebung wird ignoriert; kommando wird dann exakt in der angegebenen Umgebung ausgeführt. Die Option -i entspricht der alten Option -, die weiterhin unterstützt wird.
name ist der Name einer Variablen, die für kommando Gültigkeit haben soll. wert ist der Wert von name, der für kommando Gültigkeit haben soll.
Name des Kommandos oder der Shell-Prozedur, die Sie unter der definierten Umgebung ausführen lassen möchten.
Argument, z.B. Stellungs- oder Kennwortparameter, das Sie an kommando übergeben können. |
Endestatus
0 | env wurde erfolgreich ausgeführt |
1-125 | Fehler |
126 | Das angegebene kommando existiert, kann aber nicht aufgerufen werden. |
127 | Das angegebene kommando ist nicht auffindbar. |
Variable
PATH Bestimmt die Lage von kommando. Wird PATH als name=value Operand env zugewiesen, wird value für die Suche nach kommando verwendet. |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos env: 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 1
Ausgabe der aktuellen Werte der Umgebungsvariablen:
|
Beispiel 2
Ausgabe der geänderten Werte der Umgebungsvariablen:
Die Umgebungsvariable PATH wurde geändert. |
Beispiel 3
Ausgabe der geänderten Umgebungsvariablen mit der Option -:
Die ursprüngliche Umgebung wird ignoriert. |
Beispiel 4
Aufruf der Datei fly, die sich in /TESTUSER/sprueche, also in einem Unterdateiverzeichnis des HOME-Dateiverzeichnisses befindet. Inhalt der Datei fly: echo "Wenn hinter $1 $1 $2, $2 $1 $1 nach !" fly wird nun von einer beliebigen Stelle in Ihrem Dateibaum aus aufgerufen, hier mit den Argumenten Fliegen und fliegen.
Mit der neuen Variablendefinition für PATH legen Sie fest, wo das eingegebene Kommando, in diesem Fall die Datei fly, gesucht werden soll: in einem Unterdateiverzeichnis des HOME-Dateiverzeichnisses, das Sie zusammen mit dem Wert der Variablen HOME ($HOME) angeben. Als Argumente übergeben Sie an die Stellungsparameter $1 und $2 die Zeichenketten Fliegen und fliegen. Der Inhalt der Datei fly wird nur deshalb korrekt ausgeführt, weil das Kommando echo ein eingebautes sh-Kommando ist. Alle POSIX-Kommandos, die in /usr/bin, /usr/sbin oder /opt/bin stehen, können durch die Veränderung der Variablen PATH nicht mehr gefunden werden. Damit die POSIX-Kommandos weiterhin ausgeführt werden, muss die Variable PATH wie im folgenden Beispiel geändert werden. |
Beispiel 5
Aufruf der Datei loesch, die sich im Dateiverzeichnis /TESTUSER/proz befindet. In dieser Datei steht eine Prozedur, die zwei Dateien vergleicht und die eine löscht, wenn die Dateien gleich sind. Inhalt der Datei loesch: if cmp -s $1 $2 then rm $2 fi Aufruf von loesch von einer beliebigen Stelle in Ihrem Dateibaum aus mit den Argumenten dat1 und dat2:
Hier wurde an den ursprünglichen Suchpfad der neue angefügt, damit sowohl die Prozedur loesch als auch die in der Prozedur enthaltenen POSIX-Kommandos ausgeführt werden können. Wenn nur der Suchpfad für loesch angegeben wird, wird folgender Fehler gemeldet:
|
Siehe auch
sh, set, exec, profile, environ |