Exec - লিনাক্স কমান্ড - ইউনিক্স কমান্ড

exec - উপপ্রক্রিয়াকে আমন্ত্রণ জানান (গুলি)

সংক্ষিপ্তসার

exec ? সুইচ ? আর্গ কি? আর্গা ... ?

বিবরণ

এই কমান্ডটি তার আর্গুমেন্টগুলিকে এক বা একাধিক সাব-প্রসেসেসের এক্সিকিউশন হিসাবে প্রয়োগ করে। আর্গুমেন্ট একটি আদর্শ শেল পাইপলাইনের আকার ধারণ করে যেখানে প্রতিটি আর্গুমেন্ট একটি কমান্ডের এক শব্দ হয়ে যায়, এবং প্রতিটি স্বতন্ত্র কমান্ড একটি সাবপ্রসেস হয়ে যায়।

যদি প্রারম্ভিক আর্গুমেন্টগুলির সাথে শুরু হয় - তাহলে তাদেরকে কমান্ড-লাইন সুইচ হিসাবে গণ্য করা হয় এবং পাইপলাইন স্পেসিফিকেশন এর অংশ হয় না। নিম্নলিখিত সুইচ বর্তমানে সমর্থিত হয়:

-keepnewline

পাইপলাইন এর আউটপুট একটি trailing নতুন লাইন বজায় রাখে। সাধারনত একটি trailing newline মুছে ফেলা হবে।

-

সুইচ শেষ চিহ্নিত। এই এক নিম্নলিখিত আর্গুমেন্ট প্রথম এবিং হিসাবে গণ্য করা হবে - এটি একটি সঙ্গে শুরু হয়, এমনকি যদি -

যদি একটি আর্গ (বা আর্গটের গুলি) এর নিচে বর্ণিত একটি ফর্ম থাকে তবে এটি প্রপ্রোসিএস (এস) মধ্যে ইনপুট এবং আউটপুট প্রবাহকে নিয়ন্ত্রণ করার জন্য exec ব্যবহার করা হয়। এই ধরনের আর্গুমেন্টগুলি উপপ্রক্রিয়ায় (এস) পাঠানো হবে না। ফরমগুলিতে যেমন `` < fileName '' ফাইলের নামটি হতে পারে একটি `` <`'থেকে আলাদা আর্গুমেন্ট বা কোনও হস্তক্ষেপের স্থান ( যেমন` `< ফাইলের নাম ' ') এর সাথে কোনও যুক্তিযুক্ত।

|

পাইপলাইন মধ্যে স্বতন্ত্র কমান্ড পৃথক। পূর্ববর্তী কমান্ডের প্রমিত আউটপুটটি পরবর্তী কমান্ডের মানক ইনপুটে রূপান্তরিত হবে।

| &

পাইপলাইন মধ্যে স্বতন্ত্র কমান্ড পৃথক। পূর্ববর্তী কমান্ডের স্ট্যান্ডার্ড আউটপুট এবং মান ত্রুটি উভয় পাশ কমান্ডের মান ইনপুট মধ্যে পাইপ করা হবে। পুনঃনির্দেশকরণের এই ফর্মটি যেমন 2> এবং> & &

< ফাইলের নাম

ফাইলের নাম দ্বারা গঠিত ফাইল খোলা এবং স্ট্যান্ডার্ড ইনপুট হিসাবে ব্যবহৃত হয় পাইপলাইনের প্রথম কমান্ডের জন্য।

<@ ফাইল আইডি

FileId একটি খোলা ফাইলের জন্য শনাক্তকারী হওয়া আবশ্যক, যেমন আগের কল থেকে রিটার্ন মান খুলতে । এটি পাইপলাইনের প্রথম কমান্ডের জন্য আদর্শ ইনপুট হিসাবে ব্যবহৃত হয়। ফাইল আইডি পড়ার জন্য খোলা থাকতে হবে।

<< মূল্য

মানটি প্রথম কমান্ড হিসাবে প্রমিত ইনপুট হিসাবে প্রেরিত হয়।

> ফাইলের নাম

শেষ কমান্ড থেকে স্ট্যান্ডার্ড আউটপুটটি ফাইলের নামের নামের ফাইলে পুনঃনির্দেশিত করা হয়, এর পূর্ববর্তী সামগ্রীগুলিকে মুছে ফেলা।

2> ফাইলের নাম

পাইপলাইনের সমস্ত কমান্ডগুলি থেকে মানক ত্রুটিটি ফাইলের নামের নামের ফাইলে পুনঃনির্দেশিত করা হয়, এর পূর্ববর্তী সামগ্রীগুলি মুছে ফেলা

> & ফাইলের নাম

শেষ কমান্ড থেকে স্ট্যান্ডার্ড আউটপুট এবং সকল কমান্ড থেকে স্ট্যান্ডার্ড ত্রুটি উভয়ই ফাইলের নামের ফাইলে পুনঃনির্দেশিত করা হয়, এর পূর্ববর্তী সামগ্রীগুলি মুছে ফেলা

>> ফাইলের নাম

শেষ কমান্ড থেকে স্ট্যান্ডার্ড আউটপুটটি ফাইলের নামের নামের ফাইলে পুনঃনির্দেশিত করা হয়, এটি সংযুক্ত করার পরিবর্তে এটি উপরে লেখা নয়।

2 >> ফাইলের নাম

পাইপলাইনের সমস্ত কমান্ডগুলি থেকে মানক ত্রুটিটি ফাইলের নামের নামের ফাইলে পুনঃনির্দেশিত করা হয়, এটি সংযুক্ত করার পরিবর্তে এটি উপরে লেখা নয়।

>> এবং ফাইলের নাম

শেষ কমান্ড থেকে স্ট্যান্ডার্ড আউটপুট এবং সকল কমান্ড থেকে স্ট্যান্ডার্ড ত্রুটি উভয়ই ফাইলের নাম নামক ফাইলে পুনঃনির্দেশিত করা হয়, এটি সংযুক্ত করার পরিবর্তে এটি উপরে লেখা নয়।

> @ ফাইল আইডি

FileId একটি খোলা ফাইলের জন্য শনাক্তকারী হওয়া আবশ্যক, যেমন আগের কল থেকে রিটার্ন মান খুলতে । শেষ কমান্ড থেকে স্ট্যান্ডার্ড আউটপুট ফাইল আইডি এর ফাইলে পুনঃনির্দেশিত করা হয়, যা লেখার জন্য খোলা থাকতে হবে।

2> @ ফাইল আইডি

FileId একটি খোলা ফাইলের জন্য শনাক্তকারী হওয়া আবশ্যক, যেমন আগের কল থেকে রিটার্ন মান খুলতে । পাইপলাইনের সমস্ত কমান্ডগুলি থেকে স্ট্যান্ডার্ড ত্রুটিটি ফাইলআইডি এর ফাইলে পুনঃনির্দেশিত করা হয়। ফাইল লেখার জন্য খোলা হবে।

> & @ ফাইল আইডি

FileId একটি খোলা ফাইলের জন্য শনাক্তকারী হওয়া আবশ্যক, যেমন আগের কল থেকে রিটার্ন মান খুলতে । শেষ কমান্ড থেকে স্ট্যান্ডার্ড আউটপুট এবং সব কমান্ড থেকে স্ট্যান্ডার্ড ত্রুটি উভয় ফাইলআইডি ফাইলের জন্য পুনর্নির্দেশ করা হয়। ফাইল লেখার জন্য খোলা হবে।

যদি স্ট্যান্ডার্ড আউটপুটটি পুনঃনির্দেশিত না করা হয় তবে exec কমান্ডটি পাইপলাইনের শেষ কমান্ড থেকে স্ট্যান্ডার্ড আউটপুট প্রদান করে। পাইপলাইনের কোনও আদেশ যদি অস্বাভাবিকভাবে প্রস্থান করে বা হত্যা বা স্থগিত করা হয়, তাহলে exec একটি ত্রুটি ফেরত পাবে এবং ত্রুটির বার্তাটি অস্বাভাবিক অবসানের বর্ণনাকারী ত্রুটির বার্তাগুলি অনুসরণ করে পাইপলাইনের আউটপুট অন্তর্ভুক্ত করবে; errorCode- র ভেরিয়েবলের মধ্যে সর্বশেষ অস্বাভাবিক অবসান সম্পর্কিত অতিরিক্ত তথ্য থাকবে। যদি কোন কমান্ড তার মান ত্রুটি ফাইলে লিখে থাকে এবং সেই প্রকারের ত্রুটির পুনঃনির্দেশিত হয় না, তাহলে exec একটি ত্রুটি ফিরিয়ে দেবে; ত্রুটি বার্তা মধ্যে পাইপলাইন এর স্ট্যান্ডার্ড আউটপুট অন্তর্ভুক্ত হবে, অস্বাভাবিক পরিসমাপ্তি (যদি থাকে) সম্পর্কে বার্তা দ্বারা অনুসরণ, স্ট্যান্ডার্ড ত্রুটি আউটপুট দ্বারা অনুসরণ।

যদি ফলাফলের সর্বশেষ অক্ষর বা ত্রুটি বার্তাটি একটি নতুন লাইন হয় তবে অক্ষরের ফলাফল বা ত্রুটি বার্তা থেকে সাধারণত মুছে ফেলা হয়। এটি অন্যান্য Tcl রিটার্ন মানগুলির সঙ্গে সামঞ্জস্যপূর্ণ, যা সাধারণভাবে নতুন লাইনের সাথে শেষ হয় না। যাইহোক, যদি -keepnewline নির্দিষ্ট করা হয় তাহলে trailing newline রাখা হয়।

যদি স্ট্যান্ডার্ড ইনপুট `` <'' বা `` << '' বা `` <@ '' দ্বারা পুনঃনির্দেশিত না হয় তবে পাইপলাইনের প্রথম কমান্ডের জন্য স্ট্যান্ডার্ড ইনপুটটি অ্যাপ্লিকেশন এর বর্তমান মান ইনপুট থেকে নেওয়া হয়।

যদি শেষ আর্গুমেন্ট হয় `` এবং '' তাহলে প্যাপার লাইনটি পটভূমিতে কার্যকর হবে। এই ক্ষেত্রে exec কমান্ড একটি তালিকা ফিরিয়ে দেবে যার উপাদানগুলি পাইপলাইনের সমস্ত সাবপ্রসেসগুলির জন্য প্রক্রিয়া সনাক্তকারী। পাইপলাইনের শেষ কমান্ড থেকে প্রমিত আউটপুট অ্যাপ্লিকেশন এর স্ট্যান্ডার্ড আউটপুটতে যদি এটি পুনঃনির্দেশিত করা হয় না যায়, এবং পাইপলাইনের সমস্ত কমান্ড থেকে ত্রুটি আউটপুটটি অ্যাপ্লিকেশনের মান ত্রুটি ফাইলটিতে যেতে হবে যদি না ফেরত পাঠানো হয়।

প্রতিটি কমান্ডের প্রথম শব্দ কমান্ডের নাম হিসাবে গ্রহণ করা হয়; টিল্ড-প্রতিস্থাপন এটিতে সঞ্চালিত হয়, এবং যদি ফলাফলটি কোন স্ল্যাশ না থাকে তবে PATH এনভায়রনমেন্ট ভেরিয়েবলের ডিরেক্টরিগুলি প্রদত্ত নামের দ্বারা এক্সিকিউটেবলের জন্য অনুসন্ধান করা হয়। যদি নামটি একটি স্ল্যাশ অন্তর্ভুক্ত থাকে তবে এটি অবশ্যই একটি এক্সিকিউটেবলের বর্তমান ডিরেক্টরী থেকে পৌঁছে যাবে। কোন `` glob '' সম্প্রসারণ বা অন্যান্য শেল-মত প্রতিস্থাপন কমান্ড আর্গুমেন্ট সঞ্চালিত হয়।

পোর্টেবিলিটি সমস্যা

উইন্ডোজ (সব সংস্করণ)

`` ফাইল আইডি '' চিহ্ন ব্যবহার করে সকেট থেকে পড়া বা লেখা, কাজ করে না। একটি সকেট থেকে পড়ার সময়, একটি 16-বিট DOS অ্যাপ্লিকেশনটি লং হবে এবং একটি 32-বিট অ্যাপ্লিকেশনটি অবিচ্ছিন্নভাবে ফাইলের শেষে আসবে। যখন কোনও ধরণের অ্যাপ্লিকেশন একটি সকেটে লিখেন, তখন তথ্যটি কনসোলে পাঠানো হয়, যদি উপস্থিত হয়, বা বাতিল করা হয়।

টাকা কনসোল টেক্সট উইজেট বাস্তব মান IO ক্ষমতা উপলব্ধ করা হয় না। টিমের নীচে, যখন মানক ইনপুট থেকে পুনঃনির্দেশিত হয়, সমস্ত অ্যাপ্লিকেশনগুলি একটি তাত্ক্ষণিক সমাপ্তির ফাইল দেখতে পাবে; স্ট্যান্ডার্ড আউটপুট বা মান ত্রুটি নির্দেশিত তথ্য বাতিল করা হবে।

Tcl কমান্ডের জন্য আর্গুমেন্টগুলির জন্য অগ্রদূত বা পটভূমি স্ল্যাশগুলি পথ বিভাজকের হিসাবে গ্রহণ করা হয়। একটি অ্যাপ্লিকেশন সম্পাদন করার সময়, অ্যাপ্লিকেশনের জন্য নির্ধারিত পথ নামটিও পথ বিভাজকগুলির মত ফরোয়ার্ড বা পটভূমিতে স্ল্যাশ থাকতে পারে। মনে রাখবেন যে, বেশিরভাগ উইন্ডোজ অ্যাপ্লিকেশানই ফাঁসিতে স্ল্যাশের সাথে আর্গুমেন্টগুলি গ্রহণ করে কেবলমাত্র বিকল্পগুলির মধ্যে বিভাজক এবং ব্যাকস্ল্যাশগুলি। ফরোয়ার্ড স্ল্যাশ সহ একটি পাথ নাম নির্দিষ্ট করার জন্য কোনো আর্গুমেন্ট ব্যাকস্ল্যাশ অক্ষরটি ব্যবহার করতে স্বয়ংক্রিয়ভাবে রূপান্তরিত হবে না। যদি কোন যুক্তিটি পথ বিভাজক হিসাবে স্ল্যাশ করে থাকে তবে এটি প্রোগ্রামের উপর নির্ভর করে পাথ নাম হিসাবে স্বীকৃত হতে পারে বা নাও হতে পারে।

উপরন্তু, যখন 16-বিট ডস বা উইন্ডোজ 3.x অ্যাপ্লিকেশন আহ্বান করা হয়, তখন সকল পথের নামগুলি সংক্ষিপ্ত, রহস্যময়, পথ বিন্যাস (যেমন, `` applbakery.default 'এর পরিবর্তে `` applba ~ 1.def' 'ব্যবহার করে ব্যবহার করা আবশ্যক) )।

একটি পাথে একটি সারিতে দুই বা ততোধিক ফরোয়ার্ড বা পটভূমি স্ল্যাশ একটি নেটওয়ার্ক পাথ উল্লেখ করে। উদাহরণস্বরূপ, root directory c: / / একটি সাবডিরেক্টরি / উইন্ডো / সিস্টেম দিয়ে c: // windows / system (দুটি স্ল্যাশ একসাথে) দেবে root ডিরেক্টরের একটি সাধারণ সমন্বয় যা উইন্ডোজ (এবং c: / উপেক্ষা করা হয়), এবং c: / windows / system এর সমতুল্য নয়, যা বর্তমান কম্পিউটারের একটি ডিরেক্টরি বর্ণনা করে। ফাইল যোগ কমান্ড ব্যবহার করা উচিত পাথ উপাদান সংযোগ করতে।

উইন্ডোজ এনটি

একটি অ্যাপ্লিকেশন চালনা করার চেষ্টা করার সময়, exec নামটি নির্দিষ্ট হিসাবে নাম হিসাবে অনুসন্ধান করে। তারপর, ক্রম, .com , .exe , এবং .bat নির্দিষ্ট নামের শেষে সংযুক্ত করা হয় এবং এটি দীর্ঘ নাম অনুসন্ধান করে। যদি একটি ডিরেক্টরি নাম অ্যাপ্লিকেশন নামের অংশ হিসেবে নির্দিষ্ট করা হয় নি, তাহলে নিম্নোক্ত নির্দেশগুলি স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশনটি সনাক্ত করার সময় ক্রমশ অনুসন্ধান করা হয়:

ডিরেক্টরিটি থেকে Tcl এক্সিকিউটেবল লোড করা হয়েছিল।
বর্তমান ডিরেক্টরি
উইন্ডোজ এনটি 32 বিট সিস্টেম ডিরেক্টরি।
উইন্ডোজ এনটি 16 বিট সিস্টেম ডিরেক্টরি।
উইন্ডোজ এনটি হোম ডিরেক্টরী
পথ তালিকাভুক্ত ডিরেক্টরি।

ডীর এবং অনুলিপি মত শেল বিল্টিন কমান্ড চালানোর জন্য, কলারকে অবশ্যই `` cmd.exe / c '' প্রযোজ্য কমান্ডে প্রযোজ্য হবে।

উইন্ডোজ 95

একটি অ্যাপ্লিকেশন চালনা করার চেষ্টা করার সময়, exec নামটি নির্দিষ্ট হিসাবে নাম হিসাবে অনুসন্ধান করে। তারপর, ক্রম, .com , .exe , এবং .bat নির্দিষ্ট নামের শেষে সংযুক্ত করা হয় এবং এটি দীর্ঘ নাম অনুসন্ধান করে। যদি একটি ডিরেক্টরি নাম অ্যাপ্লিকেশন নামের অংশ হিসেবে নির্দিষ্ট করা হয় নি, তাহলে নিম্নোক্ত নির্দেশগুলি স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশনটি সনাক্ত করার সময় ক্রমশ অনুসন্ধান করা হয়:

ডিরেক্টরিটি থেকে Tcl এক্সিকিউটেবল লোড করা হয়েছিল।
বর্তমান ডিরেক্টরি
উইন্ডোজ 95 সিস্টেম ডিরেক্টরি।
উইন্ডোজ 95 হোম ডাইরেক্টরি।
পথ তালিকাভুক্ত ডিরেক্টরি।

ডীর এবং অনুলিপি মত শেল বিল্টিন কমান্ড চালানোর জন্য, কলারকে অবশ্যই ` command.com / c '" প্রয়োজনীয় কমান্ডে প্রযোজ্য হবে।

একবার 16-বিট ডস অ্যাপ্লিকেশনটি কনসোল থেকে মানক ইনপুটটি পড়েছে এবং তারপর বন্ধ হয়ে যায়, পরবর্তীতে 16-বিট ডস অ্যাপ্লিকেশন চালানোর পরে মানক ইম্পোর্টটি ইতিমধ্যে বন্ধ হয়ে যাবে। 32-বিট অ্যাপ্লিকেশনগুলির এই সমস্যা নেই এবং সঠিকভাবে চালানো হবে, এমনকি 16-বিট DOS অ্যাপ্লিকেশনের পরেও মনে হয় স্ট্যান্ডার্ড ইনপুট বন্ধ আছে। এই সময়ে এই বাগ জন্য কোন পরিচিত workaround নেই।

NUL মধ্যে পুনঃনির্দেশকরণ : ডিভাইস এবং একটি 16 বিট আবেদন সবসময় কাজ করে না। NUL থেকে পুনঃনির্দেশিত হওয়ার সময়, কিছু অ্যাপ্লিকেশনগুলি ঝুলতে পারে, অন্যরা `` 0x01 '' বাইটের অসীম প্রবাহ পাবে এবং কিছু আসলে প্রকৃতপক্ষে একটি অবিলম্বে শেষ ফাইলের ফাইল পাবে; আচরণ অ্যাপ্লিকেশন নিজেই মধ্যে কম্পাইল কিছু উপর নির্ভর করে বলে মনে হয়। যখন NUL থেকে 4K বা তার চেয়ে বড় পুনঃনির্দেশিত হয় তখন : কিছু অ্যাপ্লিকেশনগুলি স্তব্ধ হয়ে যাবে। উপরের সমস্যাগুলি 32-বিট অ্যাপ্লিকেশনের সাথে ঘটবে না।

সমস্ত ডস 16 বিট অ্যাপ্লিকেশন synchronously চালানো হয়। একটি পাইপ থেকে 16-বিট ডস অ্যাপ্লিকেশনে সমস্ত মান ইনপুট অস্থায়ী ফাইলের মধ্যে সংগ্রহ করা হয়; 16-বিট ডস অ্যাপ্লিকেশন শুরু করার আগে পাইপের অন্য প্রান্তকে বন্ধ করা উচিত। একটি 16-বিট DOS অ্যাপ্লিকেশন থেকে একটি পাইপ থেকে সমস্ত প্রমিত আউটপুট বা ত্রুটি অস্থায়ী ফাইল মধ্যে সংগ্রহ করা হয়; অস্থায়ী ফাইল পাইপলাইন এর পরবর্তী পর্যায়ে পুনর্চালিত হয় আগে অ্যাপ্লিকেশন শেষ করতে হবে এটি প্যাড বাস্তবায়নে একটি উইন্ডোজ 95 বাগ জন্য একটি কার্যকারিতা কারণে, এবং কিভাবে প্রমিত উইন্ডোজ 95 ডস শেল নিজেই পাইপ পরিচালনা করে।

কিছু অ্যাপ্লিকেশন, যেমন কমান্ড ডটকম , ইন্টারেক্টিভভাবে চালানো উচিত নয়। অ্যাপ্লিকেশনগুলি সরাসরি কনসোল উইন্ডোর অ্যাক্সেস করে, তাদের মানক ইনপুট থেকে পড়া এবং তাদের স্ট্যান্ডার্ড আউটপুট থেকে লেখা নাও ব্যর্থ হতে পারে, Tcl লঙ্ঘন করতে পারে, অথবা যদি তাদের নিজস্ব প্রাইভেট কনসোল উইন্ডো তাদের কাছে উপলভ্য না হয় তবে সিস্টেম হ্যান্ডেল করতে পারে

বর্ষাতি

Exec কমান্ড প্রয়োগ করা হয় না এবং ম্যাকিনটোশের অধীনে বিদ্যমান নেই।

ইউনিক্স

Exec কমান্ড সম্পূর্ণরূপে কার্যকরী এবং বর্ণিত হিসাবে কাজ করে।

আরো দেখুন

ত্রুটি (এন), খোলা (এন)

কীওয়ার্ড

চালানো, পাইপলাইন, পুনঃনির্দেশ, সাবপ্রসেস

গুরুত্বপূর্ণ: আপনার কমান্ডটি নির্দিষ্ট কম্পিউটারে কিভাবে ব্যবহার করা হয় তা দেখতে ম্যান কমান্ড ( % man ) ব্যবহার করুন।