আমি বাশকে আমার ইন্টারেক্টিভ শেল হিসাবে ব্যবহার করি এবং আমি ভাবছিলাম যে বাশকে শেল বিল্টিন কমান্ডের পরিবর্তে সিস্টেমে কমান্ড চালানোর কোনও সহজ উপায় আছে যেখানে তারা উভয় একই নামটি ভাগ করে দেয়।
উদাহরণস্বরূপ, সিগন্যাল প্রেরণের পরিবর্তে নামকৃত প্রক্রিয়া (এস) এর প্রসেস আইডি (পিড) প্রিন্ট করতে সিস্টেমটি kill
(থেকে util-linux
) ব্যবহার করুন :
$ /bin/kill -p httpd
2617
...
সিস্টেম কমান্ডের পুরো পথ নির্দিষ্ট না করে, সিস্টেম কমান্ডের পরিবর্তে ব্যাশ বিল্টিন ব্যবহার করা হয়। kill
Builtin নেই -p
তাই কমান্ড ব্যর্থ বিকল্প:
$ kill -p httpd
bash: kill: p: invalid signal specification
আমি মেক বাশ-এ তালিকাবদ্ধ উত্তরগুলি শেল বিল্ট ইন-এর পরিবর্তে বহিরাগত `টাইম` কমান্ডটি ব্যবহার করার চেষ্টা করেছি তবে তাদের বেশিরভাগই কেবল কাজ করে কারণ time
আসলে শেল কীওয়ার্ড - শেল বিল্টিন নয় ।
অল্প সময়ের জন্য বাশ বিল্টিনকে অস্থায়ীভাবে অক্ষম করা ছাড়া enable -n kill
, আমি এখন পর্যন্ত সবচেয়ে ভাল সমাধানটি ব্যবহার করেছি:
$(which kill) -p httpd
শেল বিল্টিনের পরিবর্তে কোনও বহিরাগত কমান্ড কার্যকর করার জন্য আরও সহজ (কম টাইপিংয়ের সাথে জড়িত) উপায় আছে কি?
দ্রষ্টব্য এটি kill
কেবল একটি উদাহরণ এবং আমি বিল্টিনের সাথে উপসর্গ করা যেমন বহিরাগত কমান্ডের একই নাম চালানো থেকে ফাংশনগুলিকে বাধা দেয় তার অনুরূপ একটি সাধারণ সমাধান চাই command
। বেশিরভাগ ক্ষেত্রে, আমি সাধারণত বিল্টিন সংস্করণটি ব্যবহার করতে পছন্দ করি কারণ এটি একটি নতুন প্রক্রিয়া কাঁটাচামান করে এবং কিছু সময় বিল্টিনে এমন বৈশিষ্ট্য রয়েছে যা বাহ্যিক কমান্ড দেয় না।
which kill
ব্যাকটিক্সে আবদ্ধ হওয়া (এগুলিকে মন্তব্যে রাখতে পারবেন না) কিছুটা ছোট।