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 env
Es 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 execvp
die 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
Externe Links
- Die einzelne Unix -Spezifikation, Version 4 von Die offene Gruppe : Stellen Sie die Umgebung für den Befehlsaufruf fest - Shell und Dienstprogramme, Referenz,
- Inferno Allgemeine Befehle Handbuch - -
- env- Manual Seite von GNU CoreUtils.
- Freebsd Allgemeine Befehle Handbuch - -
- OpenBSD Allgemeine Befehle Handbuch : Führen Sie ein Programm in einer modifizierten Umgebung aus -
- Netbsd Allgemeine Befehle Handbuch : Set und Druckumgebung -
- Linux Benutzer Handbuch - Benutzerbefehle - -
- Solaris 10 Benutzerbefehle Referenz Handbuch - -