Thema der Woche 11/2008

Umgebungsvariable

Umgebungsvariable sind, allgemein gesagt, eine Methode, mit der ein Prozess Informationen an einen Kindprozess übergeben kann. Die »Prozessumgebung« ist nichts anderes als ein Bündel von »Variablen« der Form

BLA=fasel
BLUBB=bli
...

-- die allgemeine Form ist (nach Konvention) »NAME=WERT« --, die man angeben kann, wenn man (in einem C-Programm, mit den dafür vorgesehenen Linux-Systemaufrufen) ein neues Programm startet. Typischerweise übergibt ein Prozess dabei die Umgebung, die er selber übergeben bekommen hat, gegebenenfalls mit Änderungen, aber vorgeschrieben ist das nicht.

Der Informationsfluss ist hier eine reine Einbahnstraße -- der Kindprozess hat keine Möglichkeit, über die Umgebung mit dem ursprünglichen Prozess zu kommunizieren.

Als Benutzer kommt man mit der Umgebung am ehesten über die Shell in Kontakt. Wenn Du Dich beim System anmeldest, wird die Login-Shell mit einer Umgebung ausgestattet, die Einträge wie »TERM« (den Terminal-Typ), »HOME« (das Heimatverzeichnis) oder »LOGNAME« (den Benutzernamen) enthält. Ruft die Shell ein Programm auf, übergibt sie weitere Variable, etwa »_«, das die aktuelle Kommandozeile in »roher« Form enthält. Viele Programme werten Umgebungsvariable wie »HOME« aus oder definieren ihre eigenen Umgebungsvariable -- die Farbgebung bei ls wird zum Beispiel über eine Umgebungsvariable namens »LS_COLORS« gesteuert.

Die Shell gibt Dir auch die Möglichkeit, eigene Umgebungsvariable zu setzen. Das Shellkommando »export« dient dazu, normale Shellvariable in die Umgebung zu »übertragen«, so dass sie an Kommandos übergeben werden, die Du aus der Shell startest:

$ wie=genial               # gewöhnliche Shellvariable
$ bash                     # neue Shell
$ echo Linux ist $wie
Linux ist                  # Shellvariable existiert hier nicht
$ exit                     # neue Shell beenden
$ export wie               # In die Umgebung
$ bash                     # neue Shell
$ echo Linux ist $wie
Linux ist genial           # Umgebungsvariable wird übergeben

Mit »export -n« kannst Du eine Variable wieder aus der Umgebung entfernen. Sie bleibt dann aber als normale Shellvariable erhalten. »unset« entfernt eine Shellvariable komplett, auch aus der Umgebung.

Ergänzungen, Ideen, Fragen? Schreib einen Kommentar oder (als registrierter Benutzer) trag sie hier ein!

Umgebungsvariable gehören zum LPI-Lernziel 1.109.1, Anpassung und Benutzung der Shell-Umgebung.

Noch kein Kommentar · Kommentar hinzufügen · RSS

Wichtig

LPI-Logo

Die LPI Academy ist keine offizielle Webseite des LPI!

Sponsor

Linup-Front-Logo

Die LPI Academy wird für die Community unterstützt von der Linup Front GmbH

A Django Site

Diese Seite

Version: 0 (Anselm)
8.3.2008 15:06:30

Benutzer

Nicht angemeldet

Kommentare

RSS