Env: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''env''' - Umgebungsvariablen auflisten
'''env''' - Programm in veränderter [[Linux/Umgebung/Variable|Umgebung]] laufen lassen, Umgebungsvariablen auflisten


== Beschreibung ==
== Beschreibung ==
env - ein Programm in einer veränderten Umgebung laufen lassen
; Anmerkung
; Anmerkung
: Die POSIX-Handbuchseite exec(3p) schreibt
: Die POSIX-Handbuchseite exec(3p) schreibt
:: "viele existierende Anwendungen nehmen irrtümlicherweise an, dass sie mit bestimmten Signalen starten, die auf ihre Vorgabe gesetzt und/oder nicht blockiert sind… Daher ist es am besten, Signale über Exec hinweg nicht zu blockieren oder zu ignorieren, ohne einen expliziten Grund dafür, und insbesondere Signale nicht über Execs von beliebigen (nicht eng zusammenarbeitenden) Programmen zu blockieren."
:: "viele existierende Anwendungen nehmen irrtümlicherweise an, dass sie mit bestimmten Signalen starten, die auf ihre Vorgabe gesetzt und/oder nicht blockiert sind… Daher ist es am besten, Signale über Exec hinweg nicht zu blockieren oder zu ignorieren, ohne einen expliziten Grund dafür, und insbesondere Signale nicht über Execs von beliebigen (nicht eng zusammenarbeitenden) Programmen zu blockieren."


== Installation ==
== Anwendung ==
''env'' ist Teil der [[GNU_Core_Utilities|GNU Core Utilities (Coreutils)]], die auf jedem [[GNU-Betriebssystem]] vorhanden sind
=== Umgebungsvariablen auflisten ===
<syntaxhighlight lang="bash" highlight="1">
env
</syntaxhighlight>
 
; Pager
Die Ausgabe von ''env'' kann sehr umfangreich sein
* Ausgabe mit dem Pager [[less]]
<syntaxhighlight lang="bash" highlight="1" line>
$ env | less
LESSKEY=/etc/lesskey.bin
HOSTNAME=archangel
HOST=archangel
TERM=xterm
SHELL=/bin/bash
 
</syntaxhighlight>
 
=== Verwendung in Skripten ===
; -S/--split-string-Verwendung in Skripten
 
Die Option -S ermöglicht die Festlegung mehrerer Parameter in einem Skript. Wird ein Skript namens 1.pl mit den folgenden ersten Zeilen
<syntaxhighlight lang="bash" highlight="1">
#!/usr/bin/env -S perl -w -T
</syntaxhighlight>
ausgeführt, wird perl -w -T 1.pl ausgeführt
 
Ohne den Parameter »-S« wird das Skript wahrscheinlich wie folgt fehlschlagen
<syntaxhighlight lang="bash" highlight="1">
/usr/bin/env: 'perl -w -T': No such file or directory
</syntaxhighlight>
 
Siehe die vollständige Dokumentation für weitere Details
 
=== --default-signal[=SIG] Verwendung ===
Diese Option erlaubt das Einstellen eines Signal-Handlers auf seine Standardaktion, was über den traditionellen Befehl »trap« der Shell nicht möglich
ist. Das nachfolgende Beispiel stellt sicher, dass »seq« mit SIGPIPE beendet wird, unabhängig davon, wie die Signale in dem Prozess, der den Befehl
aufruft, gehandhabt werden
 
<syntaxhighlight lang="bash" highlight="1">
sh -c 'env --default-signal=PIPE seq inf | head -n1'
</syntaxhighlight>


== Syntax ==
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1">
<syntaxhighlight lang="bash" highlight="1">
env [OPTION]… [-] [NAME=WERT]… [BEFEHL [ARG]…]
env [OPTION]… [-] [NAME=WERT]… [BEFEHL [ARG]…]
</syntaxhighlight>
</syntaxhighlight>


* Jeden NAMEn in der Umgebung auf WERT setzen und BEFEHL ausführen.
* Jeden NAMEn in der Umgebung auf WERT setzen und BEFEHL ausführen
* Die obligatorischen Argumente für Optionen sind für deren Kurz- und Langform gleich.
* Die obligatorischen Argumente für Optionen sind für deren Kurz- und Langform gleich


=== Optionen ===
=== Optionen ===
Zeile 44: Zeile 84:
| -v || --debug || || Zeigt ausführliche Informationen für jeden Verarbeitungsschritt an
| -v || --debug || || Zeigt ausführliche Informationen für jeden Verarbeitungsschritt an
|-
|-
| || --help || || zeigt Hilfeinformationen an und beendet das Programm.
| || --help || || zeigt Hilfeinformationen an und beendet das Programm
|-
|-
| || --version || || gibt Versionsinformationen aus und beendet das Programm.
| || --version || || gibt Versionsinformationen aus und beendet das Programm
|-
|-
| - || || || Ein einzelnes »-« impliziert -i. Wenn kein BEFEHL angegeben ist, wird die resultierende Umgebung ausgegeben.
| - || || || Ein einzelnes »-« impliziert -i. Wenn kein BEFEHL angegeben ist, wird die resultierende Umgebung ausgegeben
|}
|}


Zeile 54: Zeile 94:
* Ohne »SIG« sind alle bekannten Signale eingeschlossen.  
* Ohne »SIG« sind alle bekannten Signale eingeschlossen.  
* Mehrere Signale können durch Kommata getrennt werden.  
* Mehrere Signale können durch Kommata getrennt werden.  
* Ein leeres SIG-Argument ist unzulässig.
* Ein leeres SIG-Argument ist unzulässig


=== Parameter ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Umgebung ===
=== Rückgabewert ===
=== Rückgabewert ===
{| class="wikitable options"
{| class="wikitable options"
Zeile 71: Zeile 111:
| - || Ansonsten der Rückgabewert des BEFEHLs
| - || Ansonsten der Rückgabewert des BEFEHLs
|}
|}
== Anwendung ==
=== Umgebungsvariablen auflisten ===
<syntaxhighlight lang="bash" highlight="1">
env
</syntaxhighlight>
; Pager
Die Ausgabe von ''env'' kann sehr umfangreich sein
* Ausgabe mit dem Pager [[less]]
<syntaxhighlight lang="bash" highlight="1" line>
$ env | less
LESSKEY=/etc/lesskey.bin
HOSTNAME=archangel
HOST=archangel
TERM=xterm
SHELL=/bin/bash
...
</syntaxhighlight>
=== Verwendung in Skripten ===
; -S/--split-string-Verwendung in Skripten
Die Option -S ermöglicht die Festlegung mehrerer Parameter in einem Skript. Wird ein Skript namens 1.pl mit den folgenden ersten Zeilen
<syntaxhighlight lang="bash" highlight="1">
#!/usr/bin/env -S perl -w -T
</syntaxhighlight>
ausgeführt, wird perl -w -T 1.pl ausgeführt.
Ohne den Parameter »-S« wird das Skript wahrscheinlich wie folgt fehlschlagen
<syntaxhighlight lang="bash" highlight="1">
/usr/bin/env: 'perl -w -T': No such file or directory
</syntaxhighlight>
Siehe die vollständige Dokumentation für weitere Details.
=== --default-signal[=SIG] Verwendung ===
Diese Option erlaubt das Einstellen eines Signal-Handlers auf seine Standardaktion, was über den traditionellen Befehl »trap« der Shell nicht möglich
ist. Das nachfolgende Beispiel stellt sicher, dass »seq« mit SIGPIPE beendet wird, unabhängig davon, wie die Signale in dem Prozess, der den Befehl
aufruft, gehandhabt werden.
<syntaxhighlight lang="bash" highlight="1">
sh -c 'env --default-signal=PIPE seq inf | head -n1'
</syntaxhighlight>


== Konfiguration ==
== Konfiguration ==
Zeile 121: Zeile 116:


<noinclude>
<noinclude>
== Installation ==
''env'' ist Teil der [[GNU_Core_Utilities|GNU Core Utilities (Coreutils)]], die auf jedem [[GNU-Betriebssystem]] vorhanden sind
== Anhang ==
== Anhang ==
=== Siehe auch ===
=== Siehe auch ===
Zeile 129: Zeile 127:


==== Dokumentation ====
==== Dokumentation ====
===== Man-Pages =====
===== Man-Page =====
# ENV(1)
# ENV(1)



Aktuelle Version vom 12. November 2024, 18:39 Uhr

env - Programm in veränderter Umgebung laufen lassen, Umgebungsvariablen auflisten

Beschreibung

Anmerkung
Die POSIX-Handbuchseite exec(3p) schreibt
"viele existierende Anwendungen nehmen irrtümlicherweise an, dass sie mit bestimmten Signalen starten, die auf ihre Vorgabe gesetzt und/oder nicht blockiert sind… Daher ist es am besten, Signale über Exec hinweg nicht zu blockieren oder zu ignorieren, ohne einen expliziten Grund dafür, und insbesondere Signale nicht über Execs von beliebigen (nicht eng zusammenarbeitenden) Programmen zu blockieren."

Anwendung

Umgebungsvariablen auflisten

env
Pager

Die Ausgabe von env kann sehr umfangreich sein

  • Ausgabe mit dem Pager less
$ env | less
LESSKEY=/etc/lesskey.bin
HOSTNAME=archangel
HOST=archangel
TERM=xterm
SHELL=/bin/bash

Verwendung in Skripten

-S/--split-string-Verwendung in Skripten

Die Option -S ermöglicht die Festlegung mehrerer Parameter in einem Skript. Wird ein Skript namens 1.pl mit den folgenden ersten Zeilen

#!/usr/bin/env -S perl -w -T

ausgeführt, wird perl -w -T 1.pl ausgeführt

Ohne den Parameter »-S« wird das Skript wahrscheinlich wie folgt fehlschlagen

/usr/bin/env: 'perl -w -T': No such file or directory

Siehe die vollständige Dokumentation für weitere Details

--default-signal[=SIG] Verwendung

Diese Option erlaubt das Einstellen eines Signal-Handlers auf seine Standardaktion, was über den traditionellen Befehl »trap« der Shell nicht möglich ist. Das nachfolgende Beispiel stellt sicher, dass »seq« mit SIGPIPE beendet wird, unabhängig davon, wie die Signale in dem Prozess, der den Befehl aufruft, gehandhabt werden

sh -c 'env --default-signal=PIPE seq inf | head -n1'

Aufruf

env [OPTION] [-] [NAME=WERT] [BEFEHL [ARG]]
  • Jeden NAMEn in der Umgebung auf WERT setzen und BEFEHL ausführen
  • Die obligatorischen Argumente für Optionen sind für deren Kurz- und Langform gleich

Optionen

Unix GNU Parameter Beschreibung
-i --ignore-environment Mit einer leeren Umgebung beginnen
-0 --null Jede Ausgabezeile mit einem Nullbyte statt des Zeilenumbruchs abschließen
-u --unset= NAME Variable aus der Umgebung entfernen
-C --chdir= VERZ Arbeitsverzeichnis auf VERZ ändern
-S --split-string= S Verarbeitet und trennt S in getrennte Argumente; wird zur Übergabe von mehreren Argumenten auf Shebang-Zeilen verwandt
--block-signal[=] [SIG] Blockiert die Auslieferung der Signale SIG an BEFEHL
--default-signal[=] [SIG] Setzt die Handhabung der Signale SIG auf die Vorgabe zurück
--ignore-signal[=] [SIG] Setzt die Handhabung der Signal(e) SIG, so dass sie nichts machen
--list-signal-handling Berichtet von der Vorgabe abweichende Signal-Handler auf Stderr
-v --debug Zeigt ausführliche Informationen für jeden Verarbeitungsschritt an
--help zeigt Hilfeinformationen an und beendet das Programm
--version gibt Versionsinformationen aus und beendet das Programm
- Ein einzelnes »-« impliziert -i. Wenn kein BEFEHL angegeben ist, wird die resultierende Umgebung ausgegeben
  • SIG darf ein Signalname wie »PIPE« oder eine Signalnummer wie »13« sein.
  • Ohne »SIG« sind alle bekannten Signale eingeschlossen.
  • Mehrere Signale können durch Kommata getrennt werden.
  • Ein leeres SIG-Argument ist unzulässig

Parameter

Umgebung

Rückgabewert

Wert Beschreibung
125 env selbst schlägt fehl
126 BEFEHL wurde gefunden, kann aber nicht aufgerufen werden
127 BEFEHL nicht gefunden
- Ansonsten der Rückgabewert des BEFEHLs

Konfiguration

Dateien

Installation

env ist Teil der GNU Core Utilities (Coreutils), die auf jedem GNU-Betriebssystem vorhanden sind

Anhang

Siehe auch

Dokumentation

Man-Page
  1. ENV(1)
Info-Pages
  1. info '(coreutils) env invocation'

Links

Projekt
Weblinks