Env

env
Betriebssystem Unix, Unix-artig, Inferno
Plattform Plattformübergreifend
Typ Befehl
Lizenz CoreUtils: GPLV3+

env ist ein Hülse Befehl zum Unix und Unix-artig Betriebssysteme. Es wird verwendet, um entweder eine Liste von zu drucken Umgebungsvariablen Oder führen Sie einen anderen Nutzen in einer veränderten Umgebung aus, ohne die derzeit vorhandene Umgebung ändern zu müssen. Verwendung envEs können Variablen hinzugefügt oder entfernt werden, und vorhandene Variablen können geändert werden, indem sie neue Werte zuweisen.

In der Praxis, env hat eine weitere übliche Verwendung. Es wird oft von verwendet von Shell -Skripte um den richtigen zu starten Dolmetscher. Bei dieser Verwendung wird die Umgebung normalerweise nicht geändert.

Geschichte

Die Version von env gebündelt GNU CoreUtils wurde von Richard Mlynarik, David Mackenzie und Assaf Gordon geschrieben.[1] Es erschien zuerst in 4.4bsund ist ein Teil von posix.1 (mit dem -ich Nur Option).[2]

Gnu's env wurde erweitert, um Signale und das aktuelle Verzeichnis zu verarbeiten.[1] Freebsd's env Unterstützt einen benutzerdefinierten Suchpfad. In beiden Versionen enthaltene Erweiterungen umfassen -Ufür uneingeschränkte Variablen und -S, um Argumente aufzuspalten (hauptsächlich in Shebang).[2]

Beispiele

So drucken Sie die aktuelle Umgebungsvariablen aus:

env

Um eine neue Umgebung ohne vorhandene Umgebungsvariablen für eine neue Shell zu schaffen:

env -i /bin /sh

Um die auszuführen X Anwendung xcalc und lassen Sie es auf einer anderen Anzeige erscheinen (d. H. Mit einer geänderten Umgebung, ob die angegebene Umgebungsvariable durch den neuen Wert ersetzt wird):

env ANZEIGE=foo.bar:1.0 xcalc

Beachten Sie, dass diese Verwendung von Env häufig unnötig ist, da die meisten Shells Einstellungsumgebungsvariablen vor einem Befehl unterstützen:

ANZEIGE=foo.bar:1.0 xcalc

env kann auch in der verwendet werden Hashbang Zeile eines Skripts, um das zuzulassen Dolmetscher über den Weg nachschlagen. Zum Beispiel ist hier der Code von a Python Skript:

#!/usr/bin/env python3 drucken("Hallo Welt!") 

In diesem Beispiel, /usr/bin/env ist das volle Weg des env Befehl. Die Umgebung ist nicht verändert.

Beachten Sie, dass es möglich ist, den Dolmetscher ohne Verwendung anzugeben env, durch den vollen Weg der Python Dolmetscher. Ein Problem mit diesem Ansatz ist, dass auf verschiedenen Computersystemen der genaue Pfad unterschiedlich sein kann. Durch stattdessen verwenden env Wie im Beispiel wird der Dolmetscher nach dem Ausführen des Skripts gesucht und gefunden (genauer gesagt, genauer gesagt, env Ruft ein System auf execvpdie Aufgabe, den Dolmetscher zu lokalisieren und zu starten). Dies macht das Skript mehr tragbarerhöht aber auch das Risiko, dass der falsche Dolmetscher ausgewählt wird, da er in jedem Verzeichnis auf dem ausführbaren Suchpfad nach einer Übereinstimmung sucht. Es leidet auch unter dem gleichen Problem, als der Weg zum Weg zum env Binär kann auch auf der Basis pro Maschinen unterschiedlich sein.

Siehe auch

Verweise

  1. ^ a b env (1)- -Linux Benutzer Handbuch - Benutzerbefehle
  2. ^ a b env (1)- -Freebsd Allgemeine Befehle Handbuch

Externe Links