画面に「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にリダイレクトするのが解決策であり、実際に分離プロセスの入力で何が起こるのか。サブシェルは問題ではありません。(...)の代わりに中括弧{...}を使用しても同じ結果が得られます。
... and question2:「分離プロセスへの入力を与える」ための行(6)よりも優れたソリューションがあります。