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.
136 9 Mehr über die Shell<br />
(Mehr über chmod und Zugriffsrechte finden Sie in Kapitel 14.) Anschließend<br />
genügt der Aufruf<br />
$ ./meine-kommandos<br />
Sub-Shell<br />
Wenn Sie ein Shellskript wie oben gezeigt aufrufen – ob mit vorgesetztem bash<br />
oder als ausführbare Datei –, aufrufen, wird es in einer Sub-Shell ausgeführt, also<br />
einer Shell, die ein Kindprozess der aktuellen Shell ist. Das bedeutet, dass Änderungen<br />
zum Beispiel an Shell- oder Umgebungsvariablen die aktuelle Shell nicht<br />
beeinflussen. Nehmen wir einmal an, die Datei zuweisung enthält die Zeile<br />
bla=fasel<br />
Betrachten Sie die folgende Kommandosequenz:<br />
$ bla=blubb<br />
$ bash zuweisung Enthält bla=fasel<br />
$ echo $bla<br />
blubb<br />
Keine Änderung; Zuweisung war nur in Sub-Shell<br />
In der Regel wird das als Vorteil empfunden, aber hin und wieder wäre es schon<br />
wünschenswert, Kommandos aus einer Datei auf die aktuelle Shell wirken zu lassen.<br />
Auch das funktioniert: Das Kommando source liest die Zeilen einer Datei so<br />
ein, als ob Sie sie direkt in die aktuelle Shell tippen würden – alle Änderungen<br />
von Variablen (unter anderem) wirken also auf Ihre aktuelle Shell:<br />
$ bla=blubb<br />
$ source zuweisung Enthält bla=fasel<br />
$ echo $bla<br />
fasel<br />
Variable wurde geändert!<br />
Ein anderer Name für das Kommando source ist übrigens ».« (Sie haben richtig<br />
gelesen – Punkt!) Statt<br />
$ source zuweisung<br />
funktioniert also auch<br />
$ . zuweisung<br />
B<br />
Wie die Programmdateien für externe Kommandos werden auch die Dateien,<br />
die mit source bzw. . gelesen werden sollen, in den Verzeichnissen<br />
gesucht, die die Variable PATH angibt.<br />
9.6 <strong>Die</strong> Shell als Programmiersprache<br />
Shellkommandos aus einer Datei ausführen zu können ist zweifellos eine gute<br />
Sache. Noch besser ist es aber, diese Shellkommandos so zu strukturieren, dass<br />
sie nicht je<strong>des</strong>mal dasselbe tun müssen, sondern zum Beispiel Parameter von der<br />
Kommandozeile lesen können. <strong>Die</strong> Vorteile liegen auf der Hand: Bei oft gebrauchten<br />
Vorgängen wird dröge Tipperei eingespart, und bei selten gebrauchten Vorgängen<br />
vermeiden Sie Fehler, die sich einschleichen können, weil Sie irgendeinen<br />
wichtigen Schritt versehentlich auslassen. Der Platz reicht hier nicht für eine<br />
komplette Erklärung der Shell als Programmiersprache, aber für ein paar kurze<br />
Beispiele ist zum Glück Raum.<br />
Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH