Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 << zurück
Shell-Programmierung von Jürgen Wolf
Einführung, Praxis, Referenz
Buch: Shell-Programmierung

Shell-Programmierung
782 S., mit CD, 44,90 Euro
Rheinwerk Computing
ISBN 3-89842-683-1
gp Kapitel 8 Rund um die Ausführung von Scripts und Prozessen
  gp 8.1 Prozessprioritäten
  gp 8.2 Warten auf andere Prozesse
  gp 8.3 Hintergrundprozess wieder hervorholen
  gp 8.4 Hintergrundprozess schützen
  gp 8.5 Subshells
  gp 8.6 Mehrere Scripts verbinden und ausführen (Kommunikation zwischen Scripts)
    gp 8.6.1 Datenübergabe zwischen Scripts
    gp 8.6.2 Rückgabe von Daten an andere Scripts
    gp 8.6.3 Scripts synchronisieren
  gp 8.7 Jobverwaltung
  gp 8.8 Shellscripts zeitgesteuert ausführen
  gp 8.9 Startprozess- und Profildaten der Shell
    gp 8.9.1 Arten von Initialisierungsdateien
    gp 8.9.2 Ausführen von Profildateien beim Start einer Login-Shell
    gp 8.9.3 Ausführen von Profildateien beim Start einer Nicht-Login-Shell (Bash und Korn-Shell)
    gp 8.9.4 Zusammenfassung alle Profil- und Startup-Dateien
  gp 8.10 Ein Shellscript bei der Ausführung
    gp 8.10.1 Syntaxüberprüfung
    gp 8.10.2 Expansionen
    gp 8.10.3 Kommandos
  gp 8.11 Shellscripts optimieren


Rheinwerk Computing

8.11 Shellscripts optimieretoptop

Diese Überschrift täuscht ein wenig. Im Gegensatz zu anderen Programmiersprachen ist es schwer, ein Shellscript bzw. eine interpretierte Programmiersprache während der Laufzeit zu optimieren. Trotzdem gibt es einige Ratschläge, die Sie befolgen können, damit Ihre Scripts mindestens doppelt bis teilweise zehnmal so schnell laufen können.

Verwenden Sie wenn möglich Builtin-Kommandos (Übersicht siehe Anhang A) der Shell statt externer Kommandos, da diese immer wesentlich schneller interpretiert werden können als externe Kommandos (da in der Shell eingebaut). Dies führt auch gleich zu der Empfehlung, wenn möglich die Korn-Shell bzw. die Bash der Bourne-Shell vorzuziehen, da Ihnen bei den »moderneren« Shells zahlreichere eingebaute Builtin-Kommandos zur Verfügung stehen als bei der Bourne-Shell.


Hinweis   Allerdings sollten Sie immer bedenken, dass die Bash nicht überall verfügbar ist. Die portabelsten Scripts schreiben Sie immer noch mit der Bourne-Shell, weil diese überall vorhanden ist (wenn nicht, dann immer noch als symbolischer Link). Außerdem liegen auf Schlankheit getrimmte Linux-Distributionen auf einem USB-Stick derzeit im Trend (bspw. »Damnsmall Linux«). Und solch leichte Distributionen verwenden von Haus aus keine Bash mehr als Shell.


Des Weiteren sollten Sie bei der Auswahl des Kommandos immer auf die einfachere Version zurückgreifen. So ist zum Beispiel das Lesen von Daten mit cat fast zehnmal so schnell wie das Lesen von Daten mit awk und hundertmal (!) schneller als das Einlesen mir read. Hier gilt es, zwischendurch mal einen Vergleich anzustellen und die Performance der einzelnen Kommandos zu testen.

Grundsätzlich ist das Einlesen einer großen Datenmenge über read zu vermeiden – ganz besonders in einer Schleife. read eignet sich hervorragend zur Benutzereingabe oder vielleicht noch für eine kleine Datei, aber ansonsten sind hier Kommandos wie cat, grep, sed oder awk zu bevorzugen. Allerdings sollten Sie überdenken, ob Sie eigentlich alle Daten, die sich in einer sehr großen Datei befinden, benötigen. Wenn nicht, sollten Sie über grep, sed oder awk die für Sie wichtigen Zeilen herausfiltern und in einer temporären Datei für die spätere Weiterarbeit abspeichern. Auch bei der Verwendung von awk in Schleifen sollten Sie eher ein komplettes awk-Script in Erwägung ziehen. Dabei muss awk nicht jedes Mal von Neuem aufgerufen und gestartet werden.

Alle Goodies zusammengefasst:

gp  Builtin-Kommandos bevorzugen gegenüber externen Kommandos
gp  Korn-Shell und Bash gegenüber der Bourne-Shell bevorzugen
gp  Immer die einfachste Version eines Kommandos verwenden
gp  read beim Einlesen größerer Datenmengen vermeiden
gp  Immer nur die benötigten Daten aus einer Datei herausfiltern
gp  awk nicht in umfangreichen Schleifen verwenden, stattdessen ein awk-Script einsetzen


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

 << zurück
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Shell-Programmierung
Shell-Programmierung
bestellen
 Buchtipps
Zum Rheinwerk-Shop: Shell-Programmierung






 Shell-Programmierung


Zum Rheinwerk-Shop: Linux-Server






 Linux-Server


Zum Rheinwerk-Shop: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Rheinwerk-Shop: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern