এটিকে প্রক্রিয়া প্রতিস্থাপন বলা হয় এবং এটি ব্যাশ, জেডএস এবং কেএস (এবং সম্ভবত অন্যরা, আমি জানি না) এর একটি বৈশিষ্ট্য। এটি পসিক্স নয় এবং আপনার এটি পোর্টেবল কোডে ব্যবহার করা উচিত নয়, তবে এটি খুব দরকারী।
বাশ ম্যানুয়ালটির সম্পর্কিত বিভাগটি এখানে:
3.5.5 প্রক্রিয়া প্রতিস্থাপন
প্রক্রিয়া প্রতিস্থাপন সিস্টেমগুলিতে সমর্থিত যা নামযুক্ত পাইপ (FIFOs) বা খোলা ফাইলগুলির নামকরণের / dev / fd পদ্ধতি সমর্থন করে। এটি রূপ নেয়
<(list)
অথবা
>(list)
প্রক্রিয়া তালিকাটি কোনও FIFO বা / dev / fd- তে কোনও ফাইলের সাথে সংযুক্ত তার ইনপুট বা আউটপুট দিয়ে চালিত হয়। এই ফাইলটির নাম প্রসারণের ফলস্বরূপ বর্তমান কমান্ডের যুক্তি হিসাবে পাস করা হয়েছে। যদি> (তালিকা) ফর্মটি ব্যবহার করা হয় তবে ফাইলটিতে লিখিতভাবে তালিকার জন্য ইনপুট সরবরাহ করা হবে। <(তালিকা) ফর্মটি ব্যবহার করা হলে, আর্গুমেন্ট হিসাবে পাস করা ফাইলটি তালিকার আউটপুট পেতে পাঠ করা উচিত। নোট করুন যে <বা> এবং বাম বন্ধনীগুলির মধ্যে কোনও স্থান উপস্থিত হতে পারে, অন্যথায় নির্মাণটি পুনঃনির্দেশ হিসাবে ব্যাখ্যা করা হবে।
যখন উপলব্ধ হয়, প্রক্রিয়া প্রতিস্থাপন প্যারামিটার এবং ভেরিয়েবল সম্প্রসারণ, কমান্ড প্রতিস্থাপন এবং পাটিগণিত সম্প্রসারণ একযোগে সঞ্চালিত হয়।
git diff --no-index file1 <(cat file2)
ব্যর্থ হয়ে যাবে:error: /dev/fd/63: unsupported file type
। আপনি দেখতে পাবেনerror: readlink("/dev/fd/63"): No such file or directory
বাস্তবায়নটি পাইপে একটি সিমিলিংক তৈরি করে কিনা (কিছু কারণে আমার জন্য একটি ভাঙা লিঙ্ক হিসাবে উপস্থিত হবে)।