17.11.2013 Aufrufe

6 Grundlagen aus Anwendersicht

6 Grundlagen aus Anwendersicht

6 Grundlagen aus Anwendersicht

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.

<strong>Grundlagen</strong> der Shellnutzung 7.7<br />

sinnvoll, verdeutlicht aber sehr gut die Funktionsweise der direkten Kommandosubstitution.<br />

user$ ls -l `ls`<br />

-rw------- 1 cdp_xe cdp_xe 707 Mar 15 15:45 Makefile<br />

-rw------- 1 cdp_xe cdp_xe 289 Feb 20 14:10 TODO<br />

-rw------- 1 cdp_xe cdp_xe 1809 Mar 17 14:16 ZEITPLAN<br />

-rw------- 1 cdp_xe cdp_xe 2076 Mar 17 19:23 anhgkf.tex<br />

-rw------- 1 cdp_xe cdp_xe 227844 Mar 17 19:24 buch.dvi<br />

-rw------- 1 cdp_xe cdp_xe 2126 Mar 17 19:24 buch.idx<br />

-rw------- 1 cdp_xe cdp_xe 413 Mar 17 19:24 buch.ilg<br />

...<br />

Listing 7.43 Direkte Kommandosubstitution<br />

Dieser Aufruf ist nicht mit einem bloßen Aufruf von ls -l gleichzusetzen, da hier<br />

Verzeichnisdateien die Ausgabe eines gesamten Verzeichnisinhalts bewirken. Solche<br />

feinen Unterschiede sollten bei der Kommandosubstitution generell bedacht<br />

werden. Da Sie jedoch schon einige Erfahrung mit Shells haben müssen, um überhaupt<br />

an solche Unterschiede zu denken, hilft nur eines: Spielen Sie mit der Shell!<br />

Beachten Sie, dass die Kommandosubstitution nur die Standard<strong>aus</strong>gabe eines Befehls liefert<br />

– Fehlermeldungen werden über die Standardfehler<strong>aus</strong>gabe geliefert und bleiben daher<br />

unentdeckt!<br />

Diese Kommandosubstitution ist leider nicht immer ohne Weiteres möglich. Dies<br />

gilt auch für die Verwendung von Variablen. Es gibt hier feine, aber entscheidende<br />

Unterschiede. Es gibt nämlich verschiedene Arten, wie Text oder Anweisungen<br />

eingeschlossen werden können: in Hochkommata, Backticks oder Anführungszeichen.<br />

Jede dieser drei Möglichkeiten hat andere Folgen. Nehmen wir im Folgenden<br />

einmal an, der Variablen $VAR wurde der Text »hallo« zugewiesen.<br />

In Anführungszeichen werden sowohl Variablenwerte als auch Kommandosubstitutionen<br />

umgesetzt.<br />

Anführungszeichen<br />

$ echo "$VAR `pwd`"<br />

hallo /home/cdp_xe/books/kompendium<br />

Listing 7.44 Anführungszeichen<br />

In Backticks werden Kommandosubstitutionen eingeschlossen. Variablenwerte werden<br />

hierbei als Kommando interpretiert.<br />

Backticks<br />

233

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!