se voglio visualizzare "aaa" sullo schermo:
(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
la congregazione da (3) e (4) -> il processo separato ha ancora un output collegato che può essere controllato, usato, reindirizzato ..., ma non input!
La mia domanda è: qualcuno capisce perché e come funziona la linea (5) ???
... "<& 0" è l'abbreviazione di "0 <& 0", perché il reindirizzamento da 0 a 0 è una soluzione e ciò che accade realmente dietro l'input di un processo distaccato. I subshell non sono il problema, usare le parentesi graffe {...} anziché (...) fornisce gli stessi risultati.
... e domanda2: esiste una soluzione migliore per "dare input al processo distaccato" rispetto alla riga (6).