화면에 "aaa"를 표시하려는 경우 :
(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
(3)과 (4)의 결론-> 분리 된 프로세스는 여전히 제어되고, 사용되며, 리디렉션 될 수 있지만 입력은 할 수없는 출력을 연결했습니다!
내 질문은 : 누군가가 왜 (5) 줄이 작동하는지 이해합니까 ?
... "<& 0"은 "0 <& 0"의 줄임말로, 0을 0으로 재지 정하는 것이 해결책이며 분리 된 프로세스의 입력으로 실제로 발생하는 결과입니다. 서브 쉘은 문제가되지 않으며, (...) 대신 중괄호 {...}를 사용하면 동일한 결과를 얻을 수 있습니다.
... 및 질문 2 : 라인 (6)보다 "분리 된 프로세스에 입력 제공"에 대한 더 나은 솔루션이 있습니까?