উত্তর:
$(…)
সংজ্ঞা অনুসারে এটি একটি সাবশেল: এটি শেল রানটাইম রাষ্ট্রের অনুলিপি the একটি সাবসেল সাধারণত একটি নতুন প্রক্রিয়া কাঁটাচামচ করে প্রয়োগ করা হয় (তবে কিছু শেল কিছু ক্ষেত্রে এটি অপ্টিমাইজ করতে পারে)।
এটি এমন একটি সাবশেল নয় যা থেকে আপনি পরিবর্তনশীল মানগুলি পুনরুদ্ধার করতে পারেন। ভেরিয়েবলের পরিবর্তনগুলি যদি পিতামাতার উপর প্রভাব ফেলে তবে এটি সাবসেল হবে না। এটি এমন একটি সাব-শেল যার আউটপুট পিতামাতারা পুনরুদ্ধার করতে পারে। দ্বারা নির্মিত সাবশেলের $(…)
একটি স্ট্যান্ডার্ড আউটপুট একটি পাইপে সেট করা আছে, এবং পিতামাতা সেই পাইপ থেকে পড়ে এবং আউটপুট সংগ্রহ করে।
আরও কয়েকটি কনস্ট্রাকশন রয়েছে যা একটি সাবশেল তৈরি করে। আমি মনে করি এটি বাশের সম্পূর্ণ তালিকা:
( … )
কিছুই না কিন্তু একটি subshell তৈরি করব এবং বিনষ্ট হওয়ার জন্য অপেক্ষা করুন)। { … }
কোন গোষ্ঠীগুলি বিশুদ্ধভাবে সিন্ট্যাকটিক উদ্দেশ্যে আদেশ দেয় এবং একটি সাব-শেল তৈরি করে না তার সাথে বৈসাদৃশ্য করুন ।… &
একটি সাব-শেল তৈরি করে এবং এটি সমাপ্ত হওয়ার জন্য অপেক্ষা করে না।… | …
দুটি সাবশেল তৈরি করে, একটি বাম-হাতের জন্য এবং একটি ডান-হাতের জন্য এবং দুটি অপসারণের জন্য অপেক্ষা করে। শেলটি একটি পাইপ তৈরি করে এবং বাম-হাতের স্ট্যান্ডার্ড আউটপুটটিকে পাইপের রাইটিং প্রান্ত এবং ডান হাতের পাশের স্ট্যান্ডার্ড ইনপুটটিকে পড়ার শেষের সাথে সংযুক্ত করে। কিছু শেল (ksh88, ksh93, zsh, বাশ lastpipe
বিকল্প বিকল্প এবং কার্যকর) সহ ডান-হাতটি মূল শেলটিতে চলে, সুতরাং পাইপলাইনটি কেবল একটি সাবশেল তৈরি করে।$(…)
(এছাড়াও বানান `…`
) তার পাইকারে সেট করা স্ট্যান্ডার্ড আউটপুট সহ একটি সাবশেল তৈরি করে, পিতামাতার মধ্যে আউটপুট সংগ্রহ করে এবং সেই আউটপুটটিতে প্রসারিত হয়, এর পিছনে পিছনে থাকা নতুন লাইনের বিয়োগ। (এবং আউটপুটটি আরও বিভাজন এবং গ্লোব্বিংয়ের বিষয় হতে পারে তবে এটি অন্য গল্প another<(…)
একটি পাইপে সেট করা এর স্ট্যান্ডার্ড আউটপুট সহ একটি সাবশেল তৈরি করে এবং পাইপের নামে প্রসারিত হয়। অভিভাবক (বা অন্য কোনও প্রক্রিয়া) সাব-শেলের সাথে যোগাযোগের জন্য পাইপটি খুলতে পারে। >(…)
একই ইন কিন্তু স্ট্যান্ডার্ড ইনপুট নেভিগেশন।coproc …
একটি সাব-শেল তৈরি করে এবং এটি সমাপ্ত হওয়ার জন্য অপেক্ষা করে না। সাবশেলের স্ট্যান্ডার্ড ইনপুট এবং আউটপুট প্রতিটি পাইপের অন্য পাইকারের অন্য প্রান্তের সাথে পিতামাতার সাথে সংযুক্ত থাকায় একটি পাইপে সেট করা হয়।${...}
উত্তর অন্তর্ভুক্ত করতে পারেন ?
command | { read line; … }
(শেলের উপর নির্ভর করে line
পাইপলাইনের পরেও পাওয়া যায় বা নাও পারে)। সমস্ত উপায় একটি সাবશેল জড়িত কারণ আউটপুট উত্পাদন করে যে কমান্ড ইনপুট পড়া শেল স্বাধীনভাবে চালানো হয়। যদি কমান্ডটি শেলের সম্পূর্ণ শুকনো অভ্যন্তরীণ হয় (কেবল শেল তৈরি করে এবং অন্তর্নির্মিত, কোনও বহিরাগত কমান্ড নেই), শেলটি একটি সাবপ্রসেস তৈরি করতে পারে না, তবে এটি কেবল একটি অপ্টিমাইজেশন, এটি এখনও একটি সাবশেল তৈরি করে।
বাশ সংস্করণ ৪.৪, "বিবরণ" বিভাগে "কমান্ড সাবস্টিটিউশন" উপধারা বাশ (১) ম্যান পৃষ্ঠা থেকে:
বাশ
command
একটি সাব-শেল পরিবেশে সম্পাদন করে সম্প্রসারণ সম্পাদন করে [...]
bash
কোনও সাব-শেলের উল্লেখ নেই: Bash performs the expansion by executing command and replacing the command substitution with the standard output of the command, with any trailing newlines deleted.
আমি ভাবছি এটি যদি ইচ্ছাকৃতভাবে বাদ পড়ে।