wenn ich "aaa" auf dem Bildschirm anzeigen möchte:
(1)$: echo aaa | cat ... works OK
(2)$: echo aaa | ( cat ) ... works OK
(3)$: echo aaa | ( cat & ) ... NOT working
(4)$: ( echo aaa & ) | cat ... works OK
(5)$: echo aaa | ( cat <&0 & ) ... works ok in BASH (but not in SH)
(6)$: echo aaa | ( cat <&3 & ) 3<&0 ... works ok in BASH and SH
schlussfolgerung aus (3) und (4) -> losgelöster prozess haben noch ausgang geschaltet, der gesteuert, verwendet, umgeleitet werden kann ... aber nicht eingang!
Meine frage ist: versteht jemand warum und wie line (5) funktioniert ???
... "<& 0" ist die Abkürzung für "0 <& 0", warum das Umleiten von 0 auf 0 eine Lösung ist und was bei der Eingabe eines getrennten Prozesses wirklich passiert. Subshells sind nicht das Problem, die Verwendung von geschweiften Klammern {...} anstelle von (...) liefern dieselben Ergebnisse.
... und Frage 2: Gibt es eine bessere Lösung für "Eingaben für den getrennten Prozess" als Zeile (6)?