এটি শেল নির্ভর এবং নথিভুক্ত নয় এএএএফসিএস। ইন kshএবং bash, প্রথম ক্ষেত্রে, fooহিসাবে একই stdin ভাগ করবে bar। তারা আউটপুট জন্য লড়াই করবে echo।
সুতরাং উদাহরণস্বরূপ,
$ seq 10000 | paste - <(tr 1 X)'
1 X
2 X042
3 X043
4 X044
5 X045
[...]
আপনি প্রমাণগুলি দেখতে পান যা pasteপাঠ্যের প্রতিটি ব্লককে seqআউটপুট থেকে অন্য পাঠ করে trreads
এর সাহায্যে zshএটি বাহ্যিক স্টিডিন পায় (যদি এটি টার্মিনাল না হয় এবং শেলটি ইন্টারেক্টিভ না হয় তবে এটির থেকে পুনঃনির্দেশিত হয় /dev/null)। ksh(যেখানে এটি উদ্ভূত হয়েছিল), zshএবং bashপ্রক্রিয়া প্রতিস্থাপন AFAIK এর সমর্থন সহ একমাত্র বোর্নের মতো শেল।
ইন echo "bla" | bar < <(foo), নোট করুন যে barএর স্টিডিন হ'ল পাইপ হবে আউটপুট দ্বারা খাওয়ানো foo। এটি ভালভাবে সংজ্ঞায়িত আচরণ। সেক্ষেত্রে, এটা মনে হয় যে fooএর stdin নল দ্বারা খাওয়ানো হয় echoসব ksh, zshএবং bash।
যদি আপনি তিনটি শাঁস জুড়ে সামঞ্জস্যপূর্ণ আচরণ করতে চান এবং ভবিষ্যত-প্রমাণ হতে চান যেহেতু নথিবদ্ধ না হওয়ায় আচরণটি পরিবর্তিত হতে পারে, তবে আমি এটি লিখব:
echo bla | { bar <(foo); }
নিশ্চিত হওয়ার জন্য যে fooস্টিডিন হ'ল পাইপও echo(আমি দেখতে পাচ্ছি না কেন আপনি এটি করতে চাইছেন)। বা:
echo bla | bar <(foo < /dev/null)
পাইপ থেকে পড়া নাfoo হয় তা নিশ্চিত করার জন্য echo। বা:
{ echo bla | bar 3<&- <(foo <&3); } 3<&0
আছে foo'বর্তমান সংস্করণে মত বাইরের stdin stdin গুলি zsh।