Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
9.3 Arten von Kommandos – die zweite 131<br />
$ export bla=fasel bla ist Umgebungsvariable<br />
$ export -n bla bla ist (nur) Shellvariable<br />
$ unset bla bla ist ganz weg<br />
Übungen<br />
C<br />
9.3 [!2] Überzeugen Sie sich, dass die Übergabe (oder Nichtübergabe) von<br />
Umgebungs- und Shellvariablen an Kindprozesse funktioniert wie behauptet,<br />
indem Sie die folgende Kommandosequenz durchspielen:<br />
$ bla=fasel bla ist Shellvariable<br />
$ bash Neue Shell (Kindprozess)<br />
$ echo $bla<br />
bla ist nicht definiert<br />
$ exit Zurück in die Elter-Shell<br />
$ export bla bla ist Umgebungsvariable<br />
$ bash Neue Shell (Kindprozess)<br />
$ echo $bla<br />
fasel<br />
Umgebungsvariable wurde vererbt<br />
$ exit Zurück in die Elter-Shell<br />
C<br />
9.4 [!2] Was passiert, wenn Sie eine Umgebungsvariable im Kindprozess<br />
ändern? Betrachten Sie die folgende Kommandosequenz:<br />
$ export bla=fasel bla ist Umgebungsvariable<br />
$ bash Neue Shell (Kindprozess)<br />
$ echo $bla<br />
fasel<br />
Umgebungsvariable wurde vererbt<br />
$ bla=blubb Neuer Wert<br />
$ exit Zurück in die Elter-Shell<br />
$ echo $bla Was kommt hier heraus??<br />
9.3 Arten von Kommandos – die zweite<br />
Eine Anwendung von Shellvariablen ist, wie erwähnt, die Steuerung der Shell Steuerung der Shell<br />
selbst. Hierzu noch ein Beispiel: Wie in Kapitel 4 beschrieben, unterscheidet die<br />
Shell interne und externe Kommandos. Externe Kommandos entsprechen ausführbaren<br />
Programmen, die die Shell in den Verzeichnissen sucht, die in der Umgebungsvariablen<br />
PATH stehen. Hier ist ein typischer Wert für PATH:<br />
$ echo $PATH<br />
/home/hugo/bin:/usr/local/bin:/usr/bin:/bin:/usr/games<br />
<strong>Die</strong> einzelnen Verzeichnisse werden in der Liste durch Doppelpunkte getrennt,<br />
die Liste im Beispiel besteht also aus fünf Verzeichnissen. Wenn Sie ein Kommando<br />
wie<br />
$ ls<br />
eingeben, weiß die Shell, dass das kein internes Kommando ist (sie kennt ihre<br />
internen Kommandos) und fängt darum an, die Verzeichnisse in PATH abzusuchen,<br />
beginnend am linken Ende. Konkret prüft sie, ob die folgenden Dateien existieren:<br />
Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH