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