6 Grundlagen aus Anwendersicht
6 Grundlagen aus Anwendersicht
6 Grundlagen aus Anwendersicht
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