अगर मैं स्क्रीन पर "आआ" प्रदर्शित करना चाहता हूं:
(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) की तुलना में "अलग प्रक्रिया के लिए इनपुट देने" के लिए बेहतर समाधान है।