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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!