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 ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
112 8 Standardkanäle und Filterkommandos<br />
eigentliche Programmaufruf falsch eingetippt wurde oder das Programm überhaupt<br />
keine Ausgabe liefert (die Datei inhalt ist dann anschließend leer).<br />
Existierende Dateien schützen<br />
tierende<br />
B Wenn Sie verhindern wollen, dass die Shell-Ausgabeumlenkung schon exis-<br />
Dateien leert, können Sie in der Bash das Kommando »set -o noclobber«<br />
geben. In diesem Fall bleibt eine schon existierende Datei, die Ziel<br />
einer Ausgabeumlenkung ist, unverändert. Statt <strong>des</strong>sen erscheint eine Fehlermeldung.<br />
<strong>Die</strong> Textdatei inhalt können Sie nun wie üblich anschauen, z. B. mit less:<br />
$ less inhalt<br />
total 7<br />
drwxr-xr-x 12 hugo users 1024 Aug 26 18:55 ./<br />
drwxr-xr-x 5 root root 1024 Aug 13 12:52 ../<br />
drwxr-xr-x 3 hugo users 1024 Aug 20 12:30 fotos/<br />
-rw-r--r-- 1 hugo users 0 Sep 6 13:50 inhalt<br />
-rw-r--r-- 1 hugo users 15811 Aug 13 12:33 pingu.gif<br />
-rw-r--r-- 1 hugo users 14373 Aug 13 12:33 hobby.txt<br />
-rw-r--r-- 2 hugo users 3316 Aug 20 15:14 chemie.txt<br />
Standardausgabe<br />
an Datei anhängen<br />
Wenn Sie den Inhalt von inhalt genau betrachten, sehen Sie einen Verzeichniseintrag<br />
für inhalt mit der Dateigröße 0. Das liegt an der Arbeitsweise der Shell:<br />
Bei der Bearbeitung der Kommandozeile wird zunächst die Ausgabeumlenkung<br />
erkannt und eine neue Datei inhalt angelegt bzw. deren Inhalt gelöscht. Danach<br />
führt die Shell das Kommando, hier ls, aus, wobei sie die Standardausgabe von<br />
ls mit der Datei inhalt statt dem Bildschirm verbindet.<br />
B<br />
<strong>Die</strong> Datei hat in der ls-Ausgabe die Länge 0, weil das ls-Kommando die<br />
Dateiinformationen für inhalt abgerufen hat, bevor tatsächlich etwas in die<br />
Datei geschrieben wurde – obwohl vor dem betreffenden Eintrag eigentlich<br />
drei andere Zeilen stehen! Das liegt daran, dass ls erst sämtliche Verzeichniseinträge<br />
liest, sie alphabetisch sortiert und erst dann die Ausgabe zu<br />
schreiben beginnt. ls sieht also die von der Shell neu angelegte oder gerade<br />
geleerte Datei inhalt ohne Inhalt.<br />
Wenn Sie die Ausgabe eines Programms ans Ende einer bestehenden Datei anhängen<br />
wollen, ohne dass deren bisheriger Inhalt ersetzt wird, können Sie den<br />
Operator >> benutzen. Wenn diese Datei noch nicht existiert, wird sie auch hier<br />
neu angelegt:<br />
$ date >> inhalt<br />
$ less inhalt<br />
total 7<br />
drwxr-xr-x 12 hugo users 1024 Aug 26 18:55 ./<br />
drwxr-xr-x 5 root root 1024 Aug 13 12:52 ../<br />
drwxr-xr-x 3 hugo users 1024 Aug 20 12:30 fotos/<br />
-rw-r--r-- 1 hugo users 0 Sep 6 13:50 inhalt<br />
-rw-r--r-- 1 hugo users 15811 Aug 13 12:33 pingu.gif<br />
-rw-r--r-- 1 hugo users 14373 Aug 13 12:33 hobby.txt<br />
-rw-r--r-- 2 hugo users 3316 Aug 20 15:14 chemie.txt<br />
Wed Oct 22 12:31:29 CEST 2003<br />
Kommandosubstitution<br />
Im Beispiel wurde das aktuelle Datum ans Ende der Datei inhalt angefügt.<br />
Eine andere Möglichkeit zur Umleitung der Standardausgabe eines Programms<br />
bieten die »verkehrten« Anführungszeichen `…`. Man spricht auch<br />
von Kommandosubstitution: <strong>Die</strong> Standardausgabe eines Kommandos, das in<br />
verkehrten Anführungszeichen steht, wird anstelle <strong>des</strong> Kommandoaufrufs in die<br />
Befehlszeile eingebaut; ausgeführt wird dann das, was sich durch diese Ersetzung<br />
ergibt. Zum Beispiel:<br />
Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH