|
|
Umgebungsvariablen
UNIX stellt systemweite Variablen zur Verfügung. Jeder Prozess übergibt bei
Start eines Kindprozesses auch die Umgebungsvariablen. Jeder Prozess kann
den Inhalt der Variablen ändern oder neue hinzufügen. Allerdings können die
Änderungen nur von den nachfolgenden Prozessen zur Kenntnis genommen werden.
Die Shell bietet eine einfache Möglichkeit, Variablen zu setzen und abzufragen.
In Shellskripten werden sie zum Festhalten von Ergebnissen verwendet. Aber nur
die Variablen, die mit dem Kommando Man definiert eine Variable, indem man ihr einen Inhalt zuweist. Entsprechend wird sie wieder entfernt, wenn man ihr einen leeren Inhalt zuweist:Im Folgenden wird die Syntax der Bourne Shell und ihrer kompatiblen Nachfolger verwendet. Die C-Shell hat eine etwas andere Syntax.
gaston> HUGO="schau an" gaston> Es darf kein Leerzeichen zwischen Variablenname, Gleichheitszeichen und Zuweisungsobjekt auftauchen. Die Variable HUGO wird angelegt, und ihr Wert ist ab diesem Augenblick die Zeichenkette »schau an«. Um den Inhalt einer Variablen auszulesen, stellt man ein Dollarzeichen voran:
gaston> echo $HUGO schau an gaston> Der echo-Befehl führt zur Ausgabe der Wörter »schau an«. Die einschließenden Anführungszeichen werden nicht in der Variablen gespeichert. Übrigens müssen Variablennamen nicht zwingend in Großbuchstaben gesetzt sein. Da die vom System vorgegebenen Variablennamen groß sind, halten sich auch die meisten Anwender an diese Vorgabe. Aus Gründen der Übersichtlichkeit sollte man nicht ohne zwingenden Grund eine andere Konvention einführen. Die Tabelle zeigt einige vorbelegte Variablen.
[ Vorbelegte Environmentvariablen]L|L
Variable & Bedeutung
Die Variable PATH enthält die Pfade, auf denen auf dieser Maschine die
ausführbaren Programme zu finden sind. Die einzelnen Pfade sind durch
einen Doppelpunkt voneinander getrennt. Die Variable muss nur selten
geändert werden, da normalerweise die Startdateien für Programme an immer
die gleichen Stellen installiert werden. Am interessantesten ist die
Frage, ob der Punkt auch als Verzeichnis aufgelistet ist. Denn nur dann
werden Programme aus dem aktuellen Verzeichnis auch gestartet, ohne
einen Pfad anzugeben. In sicherheitskritischen Umgebungen wird der Punkt
gern weggelassen, um es Trojanischen PferdenEin Trojanisches
Pferd ist ein Programm, das unter dem Namen eines anderen Programms
auf den Rechner geschmuggelt wird. Meist steckt die Absicht dahinter,
Programme unter fremden Rechten ausführen zu lassen oder Passwörter
auszuspionieren.
schwerer zu machen. In solch
einem Fall muss das Programm im aktuellen Arbeitsverzeichnis mit Namen
prog durch
Da man bei Programmen, die im Pfad liegen, nur den Namen des Kommandos
angibt, will man manchmal wissen, wo das Programm tatsächlich liegt
bzw. welches Programm man ausführt, wenn mehrere Programme gleichen
Namens in den Pfaden stehen könnten. Zu diesem Zweck gibt es die
Programme PS1 ist der Prompt, also die Zeichenkette, die im Normalfall links neben dem Cursor steht. Standardmäßig steht dort für den normalen Anwender ein Dollarzeichen ($) und für den Administrator ein Hashzeichen (#). Inzwischen ist es aber Mode geworden, dort alle möglichen Informationen abzulegen. Dadurch füllt auf manchem System der Prompt zwei Drittel der Zeile. Andererseits ist es sicher nicht verkehrt, wenn man darüber informiert wird, wer man eigentlich ist und wo man sich befindet. So bekommt man auf meiner Maschine auf den Befehl echo $PS1 die Antwort:
u@h:w > Die Fähigkeit, den Anwender (u), den lokalen Rechner (h) und das aktuelle Verzeichnis (w) im Prompt anzuzeigen, ist allerdings spezifisch von der Shell abhängig. So sieht der Prompt neben dem Cursor so aus:
arnold@gaston: /my/texte/tex/buch > Die Variable PS2 bestimmt den Sekundärprompt. Er wird erzeugt, wenn das angefangene Kommando nach dem Return noch nicht beendet ist. Dies merkt die Shell bei Anführungszeichen oder Klammern, die gesetzt wurden, aber deren Gegenstück nicht eingegeben wurden. PS2 ist normalerweise ein einfaches Größerzeichen und wird auch selten verändert. Ein Beispiel finden Sie im folgenden Abschnitt.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|