Niemand wird auf die Idee kommen, mit den Mitteln der Bash ein Office-System zu programmieren. Für solche Zwecke fehlen der Programmiersprache einfach die Ausdrucksmittel und selbst wenn jemand sich die Arbeit machen würde, wäre ein solches Programm furchtbar langsam...
Sinn der Programmiersprache der Bash ist z.B. die Unterstützung der Automatisierung von wiederkehrenden Befehlsfolgen.
Kommen wir auf ein reales Problem zurück. Wir haben im System
mit dem Programm tar
80 Archive erzeugt und diese
anschließend mit dem Programm gzip
komprimiert.
Die Archive bezeichneten wir mit archiv01
bis archiv80
.
tar
ergänzte das Suffix .tar
und gzip
hing
nochmals .gz
hintenan, so dass die Dateinamen nun
archivXX.tar.gz
lauten.
Um die Archive auf ein anderes (nicht vernetztes) System zu kopieren,
bedienen wir uns einer MSDOS-formatierten Diskette und speichern die
Archive mittels mcopy archiv*.tar.gz a:
auf diese.
Auf dem anderen System speichern wir die Dateien zurück. Zu unserer
Überraschung nennen sich diese aber nun archi~XX.gz
, da in MSDOS
zwei Punkte in einem Dateinnamen unzulässig sind und diese maximal
8 Zeichen enthalten dürfen. Unsere Namen wurden automatisch manipuliert...
Wir müssen nun also die ursprünglichen Namen restaurieren. Eine Lösung wäre, achtzig Mal eine Zeile der Art:
user@sonne> mv archiv~01.gz archiv01.tar.gz
|
einzugeben... eine mühevolle Arbeit :-(
Alternativ lässt sich die Arbeit von einigen wenigen Shellskript-Zeilen bewerkstelligen:
user@sonne> for i in $(ls archiv*.gz); do
|
Die enthaltene Kommandosubstitution $(ls archiv*.gz)
haben wir schon
kennen gelernt;
den weiteren Mechanismen werden wir uns
in diesem Abschnitt zuwenden.