# Substitution von Prozessen

Der Vollständigkeit halber sei auch diese Substitution beschrieben...

Taucht ein Konstrukt der Art `<( Liste )` bzw. `>( Liste )` auf, werden die durch `Liste` benannten Kommandos in einer Subshell gestartet. Gleichzeitig wird die Ausgabe (`>( ... )`) bzw. Eingabe (`<( ... )`) der Kommandos mit einer automatisch erzeugten FIFO-Datei verbunden. Auf der Kommandozeile erscheint nach erfolgter Substitution der Name der erzeugten FIFO-Datei.

    user@sonne> ls <(echo "hello")
    /dev/fd/63

Mit Hilfe der Prozesssubstitution könnte man den vi dazu bewegen, die Ausgaben eines Kommandos zu lesen:

`user@sonne> vi <(ls /boot/vm*) /boot/vmlinuz /boot/vmlinuz.old ~ ~ "/dev/fd/63" [fifo/socket] 2L, 32C 1,1 All`

Ein weiteres Beispiel (danke Martin;-) dient zur Bestandsaufnahme laufender Prozesse:

`user@sonne> diff <(ps ax) <(sleep 10; ps ax) 64d63 < 2129 pts/0 S 0:00 /bin/bash 67,68c66 < 2132 pts/0 R 0:00 ps ax < 2133 pts/0 S 0:00 sleep 10 --- > 2134 pts/1 S 0:00 top > 2135 pts/0 R 0:00 ps ax`

Im Beispiel ist der Prozess `top` neu hinzugekommen, dass die Aufrufe der Kommandos `ps` und `sleep` erscheinen, war zu erwarten.

Und abschließend vergleichen wir die Inhalte zweier Archive:

`user@sonne> diff <(tar tzf Buch1.tar.gz) <(tar tzf Buch.tar.gz) 325a326,328 > Images/tkinfo.gif > Images/GlobaleVariable.gif > Images/LokaleVariable.gif`

Innerhalb der Klammern `>( ... )`, `<( ... )` können Parameter- Kommando- sowie arithmetische Substitutionen benutzt werden.