আমি প্রত্যাশা করেছি cat <(cat)
এবং cat | cat
একই কাজ করব: স্টিডিন থেকে স্টাডাউটের লাইনগুলি অনুলিপি করুন। আমার বোধগম্যতা ছিল যে উভয়ই cat
একটি সাবশেলের মাধ্যমে একটি সম্পাদন করবে, সাবসেলের স্টাডাউটটিকে cat
একটি অস্থায়ী নামযুক্ত পাইপে পুনর্নির্দেশ করবে এবং তারপরে cat
পাইপের দিকে পুনঃনির্দেশিত স্ট্যান্ডিনের সাহায্যে বর্তমান শেলটিতে অন্য একটিকে কার্যকর করবে।
পরিবর্তে, cat <(cat)
আমাকে আমার টার্মিনালে টাইপ করতে দিন, তবে কোনও ইনপুট লাইনই অনুলিপি পেতে এবং ^D
সিগন্যাল করতে ব্যর্থ হয় EOF
; cat | cat
যদিও প্রত্যাশিত হিসাবে কাজ করে।
আরও একটি পরীক্ষা হিসাবে, আমি পরীক্ষা করেছিলাম cat =(cat)
যে একইরকম অসুবিধা আছে কি না cat <(cat)
, তবে এটি আমার প্রত্যাশা অনুযায়ী কাজ করে: স্ট্যান্ডিনের সমস্ত একসাথে স্টাডআউটে ^D
অনুলিপি করে।
কেউ কি আমাকে বুঝতে সাহায্য করতে পারে যে zsh হুডের নীচে কী করছে?