একে প্রক্রিয়া প্রতিস্থাপন বলা হয়।
<(list)
সিনট্যাক্স উভয় দ্বারা সমর্থিত, bash
এবং zsh
। list
পাইপ ব্যবহার করা |
সম্ভব না হলে এটি কমান্ডের আউটপুটকে অন্য কমান্ডে যাওয়ার উপায় সরবরাহ করে । উদাহরণস্বরূপ, যখন কোনও কমান্ড কেবলমাত্র ইনপুট সমর্থন করে না STDIN
বা আপনার একাধিক কমান্ডের আউটপুট প্রয়োজন:
diff <(ls dirA) <(ls dirB)
<(list)
সিস্টেম দ্বারা সমর্থিত হলে, list
ফাইলের সাথে আউটপুট সংযুক্ত করে /dev/fd
, অন্যথায় একটি নামযুক্ত পাইপ (FIFO) ব্যবহার করা হয় (এটি সিস্টেমের সমর্থনের উপরও নির্ভর করে; ম্যানুয়াল দুটিও বলে না যে উভয় প্রক্রিয়া সমর্থন না করলে কি হয়, সম্ভবত এটি এর সাথে বাতিল হয়) একটি ভুল). ফাইলটির নামটি কমান্ড লাইনে যুক্তি হিসাবে পাস করা হয়।
zsh
অতিরিক্ত =(list)
হিসাবে সম্ভাব্য প্রতিস্থাপন সমর্থন করে <(list)
। =(list)
অস্থায়ী ফাইলের সাথে ফাইল /dev/fd
বা একটি ফিফোর পরিবর্তে ব্যবহৃত হয় । <(list)
প্রোগ্রামটি যদি আউটপুটটিতে সন্ধান করার প্রয়োজন হয় তবে এটি প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে ।
জেডএসএইচ ম্যানুয়াল অনুসারে কীভাবে <(list)
কাজ করে তা নিয়ে অন্যান্য সমস্যাও থাকতে পারে :
=
উভয় ফর্ম দরকারী /dev/fd
এবং নামে পাইপ বাস্তবায়ন <(...)
অপূর্ণতা আছে। পূর্ববর্তী ক্ষেত্রে, কিছু প্রোগ্রাম কমান্ড লাইনে ফাইলটি পরীক্ষা করার আগে প্রশ্নযুক্ত ফাইল বর্ণনাকারীটিকে স্বয়ংক্রিয়ভাবে বন্ধ করতে পারে, বিশেষত যদি সুরক্ষা কারণে যেমন প্রোগ্রামটি সেটআপ হয় তখন এটি প্রয়োজন হয় this দ্বিতীয় ক্ষেত্রে, প্রোগ্রামটি যদি ফাইলটি প্রকৃতপক্ষে না খোলায়, পাইপ থেকে পড়তে বা লেখার চেষ্টা করা সাবসেল চিরতরে ব্লক হয়ে যাবে (একটি সাধারণ প্রয়োগে, বিভিন্ন অপারেটিং সিস্টেমের বিভিন্ন আচরণ থাকতে পারে) এবং স্পষ্টভাবে হত্যা করতে হবে । উভয় ক্ষেত্রেই, শেলটি আসলে পাইপ ব্যবহার করে তথ্য সরবরাহ করে, যাতে যে প্রোগ্রামগুলি ফাইলটিতে সন্ধানের (ম্যান পৃষ্ঠাটি দেখুন lseek(2)
) কাজ করে না সেগুলি কাজ করে না।
pfctl -f <(echo "pf rules")
খারাপ ফাইল বর্ণনাকারী বলবে তা বুঝতে সহায়তা করে । পরিবর্তে zsh এবং = (প্রতিধ্বনি "পিএফ বিধি") ব্যবহার করে।