next up previous contents index
Next: Hintergrundprozesse Up: bash Previous: Ein-/Ausgabe-Umleitung

Pipelines

     

Die engste Verknüpfung mehrerer einfacher Kommandos wird durch eine sogenannte Pipeline hergestellt. Das Charakteristikum einer Pipeline ist die Zusammenlegung des Standardausgabekanals des einen Kommandos mit dem Standardeingabekanal des zweiten. Dabei wird die Multitasking-Fähigkeit von Linux ausgenutzt und die beiden (oder mehr) Kommandos als separate Prozesse gleichzeitig gestartet.

Die Syntax für die Zusammenfassung zweier Kommandos in einer Pipeline sieht folgendermaßen aus:

[ !] Kommando | Kommando [ | Kommando] ...

Der entscheidende Kontrolloperator ist das `|'-Zeichen (Pipe).

Der Status der gesamten Pipeline ist gleich dem Status des letzten Kommandos in der Pipeline (-> Seite gif).

Die Verknüpfung der Standardkanäle findet vor einer eventuellen Umlenkung durch eines der Kommandos statt. Das bedeutet, daß die Zusammenlegung von Standardfehlerausgabe und Standardausgabe tatsächlich in der Pipeline mündet.

Die parallele Ausführung aller einfachen Kommandos einer Pipeline legt es nahe, die komplette Pipeline syntaktisch als Einheit zu betrachten. Wenn im folgenden nicht ausdrücklich von einfachen Kommandos die Rede ist, steht ``Kommando'' auch für Pipelines.

Es können mehrere Kommandos durch Pipelines verkettet werden. Dabei sind aber nur zwei Pipelines für jedes einfache Kommando erlaubt -- jeweils eine für die Standardeingabe und die Standardausgabe. Soll ein Kommando aus mehreren Pipelines gleichzeitig lesen, kann das ab bash-1.13 durch die Prozeßsubstitution (-> Seite gif) mit Named-Pipes realisiert werden.



next up previous contents index
Next: Hintergrundprozesse Up: bash Previous: Ein-/Ausgabe-Umleitung



Linux Anwenderhandbuch -- Copyright 1993, 1994, 1995 S. Hetze, D. Hohndel, O. Kirch, M. Müller