jeśli chcę wyświetlić „aaa” na ekranie:
(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
wniosek z (3) i (4) -> odłączony proces nadal ma podłączone wyjście, które można kontrolować, wykorzystywać, przekierowywać ..., ale nie wprowadzać!
Moje pytanie brzmi: czy ktoś rozumie, dlaczego i jak działa linia (5) ???
... „<& 0” to skrót od „0 <& 0”, dlaczego przekierowanie 0 na 0 jest rozwiązaniem i co tak naprawdę dzieje się z wejściem odłączonego procesu. Podkładki nie stanowią problemu, używanie nawiasów klamrowych {...} zamiast (...) zapewnia takie same wyniki.
... i pytanie 2: czy istnieje lepsze rozwiązanie dla „przekazywania danych wejściowych procesowi odłączonemu” niż linia (6).