Ein/Ausgabe-Umleitung Der Kommandozeileninterpreter Bash Ausgabevervielfachung Inhalt Index


Pipes

Pipes (Röhren) dienen der Verknüpfung eines Ausgabe- mit einem Eingabestrom:

   
user@sonne> cd /dev
user@sonne> ls -l | less

speist die Ausgabe von ls -l in die Eingabe von less (ohne diese Pipe hätte man keine Chance, die Ausgaben - ca. 1500 Zeilen - am Bildschirm zu verfolgen).

Anstelle von Pipes können auch FIFO-Dateien verwendet werden (kaum gebraucht):

   
user@sonne> mkfifo fifo
user@sonne> ls -l > fifo&
user@sonne> less fifo
user@sonne> rm fifo

ls -l schreibt nun in die Datei fifo, aus der less seine Daten bezieht. Um die Shell für die nächste Eingabe frei zu bekommen, wurde ls -l im Hintergrund gestartet (& bewirkt diesen Effekt).

Alternativ kann man auch wie folgt vorgehen:

   
user@sonne> ls -l > fifo
^z
[1]+  Stopped                 ls --color=tty -l >fifo
user@sonne> bg
[1]+ ls --color=tty -l >fifo &
user@sonne> less < fifo
[1]+  Done                    ls --color=tty -l >fifo

<CTRL><Z> stoppt die Ausführung des aktiven Prozesses (es erscheint eine Meldung: ..Stopped...), bg lässt den Prozess nun im Hintergrund laufen. Mit Beenden von less terminiert auch ls -l. Mit fg kann man den zuletzt in den Hintergrund beförderten Prozess wieder in den Vordergrund holen (fg jobnr holt den Job mit der angegebenen Nummer in den Vordergrund).


Ein/Ausgabe-Umleitung Der Kommandozeileninterpreter Bash Ausgabevervielfachung Inhalt Index