ShellprogrammierungHier geht es im Wesentlichen um Scripte und Funktionen fürbash und
ksh (genauer, ksh93 ). Beide Shells sind frei verfügbar und
unter Linux schnell zu installieren.
[1] Ich verwende bash vor allem für den
interaktiven Betrieb (d.h. als Loginshell) und für einfache Scripte. Dafür
sprechen pragmatische Gründe: Sie ist die Standardshell von Linux,
also muss man sie sowieso kennen, und im Dialogbetrieb bietet sie mehr Komfort
als die ksh . Dagegen ist die Kornshell wegen ihrer weiter entwickelten
Sprachmittel (assoziative Arrays, Referenzvariablen, strukturierte Variable
etc.) für komplexe Scripte besser geeignet.
Die meisten der im Folgenden gezeigten Shellscripte und -funktionen
funktionieren sowohl unter Die Funktionen verwenden, wo immer es geht, lokale Variablen, um
die aktuelle Variablenumgebung möglichst wenig zu beeinflussen. In einigen
muss jedoch Die Dateien können einzeln angesehen oder heruntergeladen werden. Der Button links auf dieser Seite lädt ein Archiv herunter, das alle Funktionen und Scripte enthält. Vorausgesetzt wird eine hinreichend aktuelle Shellversion. Getestet wurde mit bash-3.2 und ksh-1993-12-28s+ (2007-11-05). Kompatible Scripte? In Newsgruppen hört man gelegentlich die Empfehlung, "kompatible" Scripte zu schreiben, im Klartext: die Errungenschaften moderner Shells zu ignorieren und sich auf den Funktionsumfang der archaischen Bourneshell zu beschränken. Für jemand, der unbedingt erreichen will, dass seine Scripte noch auf dem ältesten und obskursten unixoiden System laufen, mag das sinnvoll sein (garantiert ist es allerdings trotzdem nicht). Wer jedoch damit zufrieden ist, dass sie auf allen gängigen Linux-Systemen laufen, oder wer ohnehin nur für den eigenen Bedarf schreibt, kann diesen Rat getrost ignorieren. Die Sprachmittel der modernen Shells sind aus gutem Grund entwickelt worden (nämlich, um die Programmierung leichter und sicherer zu machen), und deshalb werden sie in den hier vorgestellten Scripten auch konsequent genutzt. [1] Es gibt natürlich noch andere Shells, jede mit spezifischen Vor- und Nachteilen. Ich beschränke mich auf die beiden, weil ich mit ihnen relativ gut vertraut bin, und beteilige mich nicht an religiösen Shellkriegen.
|