next up previous contents
Next: Prozeßverwaltung Up: Die Shell Previous: Ein-, Ausgabeumleitung

Substitution

Eine mächtige Funktion der Shell ist die Möglichkeit mit wildcards, oder Jokerzeichen zu arbeiten. D.h. bestimmte Zeichen werden nicht ``wörtlich´´ genommen, sondern ersetzen jeweils eine Klasse von Zeichen. Damit ist es möglich, umfangreiche Aufgaben wesentlich rascher als mit einer GUI (Grapical User Interface) auszuführen.

Versuchen Sie mal in einem Verzeichnis mit mehreren Bildern etwas wie

#!/bin/sh

for i in *.jpg
do
%   j=`basename $i jpg`
%   convert $i $j.gif
done

mittels einer GUI zu machen. Während Sie sich dabei eine Sehnenscheidenentzündung holen würden, können Sie mittels der Shell Ihre Zeit für etwas sinnvolles nutzen. ( z.B. Quake ;-) )

Wichtig dabei ist der richtige Einsatz der Anführungszeichen. Zur Verwirrung der Anwender kennt die Shell drei davon.

"..."
Verhindert die Auswertung der meisten Sonderzeichen.($ echo ls *" gibt tatsächlich ls *)
'...'
Verhindert sie Auswertung aller Sonderzeichen.
`...`
Kommandosubstitution $ echo ls *¨ schreibt das Ergebnis des Kommandos (ls * auf die Standardausgabe)

Doch zurück zur Substitution von Sonderzeichen.

Die wichtigsten Jokerzeichen sind * und ?, die für beliebig viele, auch 0, bzw. für genau ein Zeichen stehen.

Weiterhin kann man Zeichenbereiche definieren, so steht z.B. *[a-z] für alle Dateien mit beliebig vielen Zeichen, die am Ende auf ein Zeichen zwischen a und z enden, während *[a,z] nur für Dateien steht, die auf a oder z enden.

Noch schöner kann man mit {} arbeiten. So gibt $ echo {a,b}{y,z} folgende Ergebnisse: ay az by bz.


next up previous contents
Next: Prozeßverwaltung Up: Die Shell Previous: Ein-, Ausgabeumleitung
Matthias Kabel
2000-01-23