exec কমান্ডটি বর্তমান শেল প্রক্রিয়াটিকে নির্দিষ্ট কমান্ড দ্বারা প্রতিস্থাপন করে। সাধারণত, আপনি যখন কোনও কমান্ড চালান তখন একটি নতুন প্রক্রিয়া তৈরি হয় (কাঁটাচামচ)। exec কমান্ড নতুন পদ্ধতির ডিম নেই। পরিবর্তে, বর্তমান প্রক্রিয়াটি নতুন কমান্ড দ্বারা আবৃত রয়েছে। অন্য কথায় execকমান্ডটি একটি নতুন প্রক্রিয়া তৈরি না করে বর্তমান শেলের পরিবর্তে কার্যকর করা হয়।
এক্সিকিউট কমান্ডের তিনটি সাধারণ ব্যবহার রয়েছে:
1. প্রক্রিয়া প্রতিস্থাপন
উদাহরণ -১:
আপনি যদি নতুনbashশেলটিখুলেন তবে
$ bash
মধ্যে pstreeএটা দেখে মনে হচ্ছে
├─gnome-টার্মিনাল
├─bash───bash───pstree
আগের bashশেলটি এখনও আছে এবং আপনি একটি নতুন bashশেল পেয়েছেন । আপনি যদি নতুন কোনও বাশ শেল হিসাবে খোলেন,
$ exec bash
pstreeশো
├─gnome-টার্মিনাল
├─bash───pstree
এখানে bashপুরানোটি নতুন দিয়ে প্রতিস্থাপন করা হয়েছে। এক কমান্ডে একাধিক লগইন থেকে বেরিয়ে আসা বিশেষত কার্যকর। এটি আরও সুরক্ষিত এবং ভুল করে একটি উন্মুক্ত টার্মিনাল রেখে যাওয়ার সম্ভাবনাটি নির্মূল করে। দেখুন এক আদেশের সঙ্গে উভয় রুট এবং ব্যবহারকারীর কাছ থেকে প্রস্থান করুন
উদাহরণ -২: আপনি যেমন ফাইল খুলতে পারেন
$ exec vi filename.txt
আপনি যখন প্রস্থান করবেন তখন viশেলটি ইতিমধ্যে প্রতিস্থাপন করা হওয়ায় আলাদাভাবে টার্মিনালটি বন্ধ করার দরকার নেই। ভিআই বন্ধ করার সাথে সাথে টার্মিনালটিও বন্ধ হয়ে যায়।
২. শেল স্ক্রিপ্টগুলির মধ্যে ফাইল বর্ণনাকারীদের পুনঃনির্দেশের একটি পদ্ধতি
exec কমান্ড এছাড়াও পরিবর্তনশীল খোলা শেল স্ক্রিপ্ট-এ ব্যবহার করা যাবে, বন্ধ, এবং ফাইল বর্ণনাকারী কপি করুন। এটি শেল স্ক্রিপ্টের অভ্যন্তরে কমান্ড অনুরোধের স্ট্রিংয়ের পরিবর্তে শেল স্ক্রিপ্টের অভ্যন্তরে বিভিন্ন ফাইলগুলিতে STDIN, STDERR, STDOUT এবং অন্যান্য ফাইল বর্ণনাকারীদের পুনঃনির্দেশ সঞ্চালনের অনুমতি দেয়। আপনি যদি কোনও আদেশ বা যুক্তি নির্দিষ্ট না করেন তবে আপনি এই ফাংশনগুলি সম্পাদন করতে পুনঃনির্দেশ চিহ্ন এবং ফাইল বর্ণনাকারী নির্দিষ্ট করতে পারেন।
বলুন যে আপনার কাছে একটি শেল স্ক্রিপ্ট রয়েছে যাতে script.shআপনি লগ ফাইল রাখতে চান script.log, আপনি এটি execহিসাবে ব্যবহার করতে পারেন ,
LOG=/path/to/script.log
exec 1>>$LOG
exec 2>&1
যা সমান
./script &>> /path/to/script.log
./script >> /path/to/script.log 2>&1
৩. এক্সিকিউট কমান্ড ব্যবহার করে প্রক্রিয়াটির স্তর তৈরি করা stages
আপনি শেক স্ক্রিপ্টগুলির একটি সেট তৈরি করতে এক্সিকিউট কমান্ডটি ব্যবহার করতে পারেন যা প্রক্রিয়াটির পর্যায়ে যেমন একে অপরকে ক্রমান্বয়ে কার্যকর করে। প্রতিবার নতুন প্রসেস তৈরি করার পরিবর্তে আপনি এক্সিকিউট কমান্ডটি কার্যকর করে পরবর্তী স্ক্রিপ্টে নিয়ন্ত্রণ স্থানান্তর করতে হবে।
এক্ষেত্রে প্রতিটি স্তরের শেষ বিবৃতিটি execহ'ল কমান্ড হওয়া উচিত যা পরবর্তী পর্যায়ে চলে।
দেখুন ব্যবহার execশেল স্ক্রিপ্ট-এ কমান্ড আরো অনেক কিছুর জন্য।
দ্রষ্টব্য: উপরের অংশটি এ থেকে নেওয়া হয়েছে ।