09.04.2014 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!