বাশ '<(ফাইলের বিষয়বস্তু)' সিনট্যাক্স কী বলা হয়?


25

সিকিউরিটি স্ট্যাকএক্সচেঞ্জের এই উত্তরটি অনলাইনে একটি ফাইল তৈরি করতে আকর্ষণীয় বাশ সিনট্যাক্স ব্যবহার করে:

openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650

এই বিটটি বিশেষ আকর্ষণীয়:

<(openssl ecparam -name secp384r1)

চলমান:

echo <(openssl ecparam -name secp384r1)

আমি ফিরে পেতে /dev/fd/63

সুতরাং এটি ফাইলের বিষয়বস্তু সহ একটি অস্থায়ী ফাইল বর্ণনাকারী করে তোলে।

এটাকে কি বলে?


3
মনে রাখবেন যে ফলস্বরূপ "ফাইল" আসলে একটি নামযুক্ত পাইপ এবং কিছু প্রোগ্রাম সেগুলি ফাইল আর্গুমেন্ট হিসাবে সমর্থন করে না। উদাহরণ: git diff --no-index file1 <(cat file2)ব্যর্থ হয়ে যাবে: error: /dev/fd/63: unsupported file type। আপনি দেখতে পাবেন error: readlink("/dev/fd/63"): No such file or directoryবাস্তবায়নটি পাইপে একটি সিমিলিংক তৈরি করে কিনা (কিছু কারণে আমার জন্য একটি ভাঙা লিঙ্ক হিসাবে উপস্থিত হবে)।
কেলভিন

উত্তর:


35

এটিকে প্রক্রিয়া প্রতিস্থাপন বলা হয় এবং এটি ব্যাশ, জেডএস এবং কেএস (এবং সম্ভবত অন্যরা, আমি জানি না) এর একটি বৈশিষ্ট্য। এটি পসিক্স নয় এবং আপনার এটি পোর্টেবল কোডে ব্যবহার করা উচিত নয়, তবে এটি খুব দরকারী।

বাশ ম্যানুয়ালটির সম্পর্কিত বিভাগটি এখানে:

3.5.5 প্রক্রিয়া প্রতিস্থাপন

প্রক্রিয়া প্রতিস্থাপন সিস্টেমগুলিতে সমর্থিত যা নামযুক্ত পাইপ (FIFOs) বা খোলা ফাইলগুলির নামকরণের / dev / fd পদ্ধতি সমর্থন করে। এটি রূপ নেয়

  <(list) 

অথবা

  >(list) 

প্রক্রিয়া তালিকাটি কোনও FIFO বা / dev / fd- তে কোনও ফাইলের সাথে সংযুক্ত তার ইনপুট বা আউটপুট দিয়ে চালিত হয়। এই ফাইলটির নাম প্রসারণের ফলস্বরূপ বর্তমান কমান্ডের যুক্তি হিসাবে পাস করা হয়েছে। যদি> (তালিকা) ফর্মটি ব্যবহার করা হয় তবে ফাইলটিতে লিখিতভাবে তালিকার জন্য ইনপুট সরবরাহ করা হবে। <(তালিকা) ফর্মটি ব্যবহার করা হলে, আর্গুমেন্ট হিসাবে পাস করা ফাইলটি তালিকার আউটপুট পেতে পাঠ করা উচিত। নোট করুন যে <বা> এবং বাম বন্ধনীগুলির মধ্যে কোনও স্থান উপস্থিত হতে পারে, অন্যথায় নির্মাণটি পুনঃনির্দেশ হিসাবে ব্যাখ্যা করা হবে।

যখন উপলব্ধ হয়, প্রক্রিয়া প্রতিস্থাপন প্যারামিটার এবং ভেরিয়েবল সম্প্রসারণ, কমান্ড প্রতিস্থাপন এবং পাটিগণিত সম্প্রসারণ একযোগে সঞ্চালিত হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.