Bash স্ক্রিপ্টগুলির সাহায্যে সঠিকভাবে চালান কিভাবে শিখুন

পটভূমিতে সমান্তরালে চালানোর জন্য কিভাবে উপকৃত হবেন

একটি শেল একটি লিনাক্স সিস্টেমে কমান্ড লিখতে একটি মৌলিক ইন্টারফেস। এটির মাধ্যমে, আপনি সরাসরি একটি কমান্ড লিখতে পারেন বা একটি ফাইল (স্ক্রিপ্ট) নির্দিষ্ট করতে পারেন যা ক্রমবিন্যাস করার জন্য একটি ক্রম ক্রম অন্তর্ভুক্ত করে। শিড়ায় একটি অনুক্রমের মধ্যে সংগঠিত হয়, এবং কোন শেল একটি নতুন শেল তৈরি করতে পারেন। নতুন শেলটিকে একটি শিশু প্রক্রিয়া বলে মনে করা হয়- এটি একটি পিসির শেলের একটি সাবসহেল যা তৈরি করে।

ডিফল্টভাবে, একটি subshell তার প্যারেন্টের উপর ভিত্তি করে বোঝা যায় যে মাষ্টার প্রক্রিয়া স্থগিত হলে, subshellও বন্ধ হয়ে যায়। কোনও আউটপুট সাবসহেল থেকে মূল শার্টে প্রেরণ করা হয়।

কিভাবে একটি Subshell তৈরি করুন

একটি ব্যাশ শেল স্ক্রিপ্টের মধ্যে, আপনি বন্ধনী সংকেত ব্যবহার করে একটি subshell তৈরি করুন:

#! / bin / bash echo "subshell শুরু করার আগে" (গণনা = 1 [$ গণনা - 99] যখন "$ গণনা" ঘুম 1 ((গণনা ++) সম্পন্ন করুন) "শেষ"

উদাহরণস্বরূপ, যখন লুপ প্যারেন্টেসিসে আবৃত থাকে, যা শেলের একটি সাবসেলে এটি চালানো হয় যার মধ্যে স্ক্রিপ্ট চালানো হয়।

পটভূমিতে একটি Subshell চালানো

ব্যাকগ্রাউন্ডে সাবসহেল কার্যকর করার জন্য নির্দিষ্ট না হওয়া পর্যন্ত, পিসির শিটটি অবশিষ্ট স্ক্রিপ্টের সাথে চালিয়ে যাওয়ার পূর্বে subshell এর জন্য অপেক্ষা করে। যাইহোক, যদি আপনি সমান্তরাল মধ্যে subshells চালাতে চান, আপনি পটভূমিতে তাদের চালানো, যা subshell এক্সপ্রেশন নিম্নলিখিত ampersand অক্ষর সঙ্গে সম্পন্ন হয়, এখানে দেখানো হয়েছে:

#! / bin / bash echo "subshell শুরু করার আগে" (গণনা = 1 যখন [$ গণনা -ল 99] "$ গণনা" ঘুম 1 ((গণনা ++) সম্পন্ন করুন) এবং "সমাপ্ত"

সমান্তরাল মধ্যে একাধিক Subshells চালনা

আপনি যদি ব্যাকগ্রাউন্ড প্রসেস হিসাবে একাধিক subshell তৈরি করেন, তাহলে আপনি সমান্তরালে কাজগুলি চালাতে পারেন। সাধারনত, অপারেটিং সিস্টেম প্রতিটি প্রসেস এবং সাবপ্রসেসের জন্য বিভিন্ন প্রসেসর বা কোর ব্যবহার করে, প্রসেস হিসাবে কমপক্ষে অনেক প্রসেসর বা কোর থাকে। অন্যথা, কর্ম একই প্রসেসর বা কোর নির্ধারিত হয়। যে ক্ষেত্রে, কর্ম সম্পন্ন হয় না পর্যন্ত প্রসেসর বা কোর ক্রমাগত নির্ধারিত কর্মের মধ্যে সুইচ। পরের উদাহরণটির দুটি উপপ্রক্রিয়াকরণ আছে। প্রথমটি 1 থেকে 99 পর্যন্ত গণনা করা হয় এবং দ্বিতীয়টি 1000 থেকে 1099 পর্যন্ত।

#! / bin / bash echo "subshell শুরু করার আগে" (গণনা = 1, [$ গণনা - 99] যখন "$ গণনা" ঘুম 1 ((গণনা ++) সম্পন্ন করুন) এবং (গণনা = 1000 যখন [$ count -le] 1099] "$ গণনা" ঘুম 1 ((গণনা ++) সম্পন্ন করুন) এবং "শেষ"

স্ক্রিপ্ট বাকি সঙ্গে অগ্রসর হওয়ার পূর্বে subprocesses সমাপ্তির জন্য অপেক্ষা করতে পিতামাতার প্রক্রিয়া বলতে অপেক্ষা বক্তব্য ব্যবহার করুন:

#! / bin / bash echo "subshell শুরু করার আগে" (গণনা = 1, [$ গণনা - 99] যখন "$ গণনা" ঘুম 1 ((গণনা ++) সম্পন্ন করুন) এবং (গণনা = 1000 যখন [$ count -le] 1099] "$ গণনা" ঘুম 1 ((গণনা ++) সম্পন্ন করুন) এবং "সমাপ্ত"

Subshells জন্য ব্যবহার করে

একটি বিশেষ পরিবেশ বা ডিরেক্টরির মধ্যে কমান্ডগুলি চালানোর প্রয়োজন হলে Subshells দরকারী। প্রতিটি কমান্ড একটি ভিন্ন সাশেলে চালানো হলে, কোন ঝুঁকি নেই যে ভেরিয়েবল সেটিংস মিশ্রিত হবে। সমাপ্তির পরে, সেটিংস এবং বর্তমান ডিরেক্টরিটি পুনরুদ্ধারের প্রয়োজন হয় না, যেহেতু মূল পদ্ধতির পরিবেশ তার উপপ্রক্রিয়াকর্মীদের দ্বারা প্রভাবিত হয় না।

সাবস্কিলগুলি ফাংশন সংজ্ঞাগুলিতে ব্যবহার করা যেতে পারে যাতে তারা বিভিন্ন পরামিতিগুলির সাথে একাধিকবার সম্পাদন করতে পারে।