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