অন্তর্নির্মিত কমান্ডগুলি সর্বদা বাহ্যিক কমান্ডগুলিতে পছন্দ হয়। যুক্তিটি হ'ল বিল্ট-ইন কমান্ডটি দ্রুত (এবং কয়েকটি ক্ষেত্রে যেমন cd
বা কেবল বিল্ট-ইন কমান্ডই পছন্দসই প্রভাব ফেলতে পারে)।test -o BASH_OPTION
কখনও কখনও বাহ্যিক কমান্ডের এমন দক্ষতা থাকতে পারে যা শেলটি অন্তর্নির্মিত হয় না। সেক্ষেত্রে আপনি বাহ্যিক কমান্ডকে একটি স্পষ্ট পথ (অর্থাত্ একটি স্ল্যাশযুক্ত) দিয়ে কল করতে পারেন (এটি অর্ডার সম্পর্কে কোনও উদ্বেগকে ছাড়িয়ে যায় $PATH
)। আপনি যদি বাহ্যিক পথটিকে হার্ড-কোড করতে না চান তবে আপনি বিল্টিনের ব্যবহার রোধ করতে চান, আপনি ব্যাশ, ksh এবং zsh এ "$(type -P test)"
(নোট মূলধন P
) ব্যবহার করতে পারেন । বাহ্যিক কমান্ডের ব্যবহারকে বাধ্য করার আরেকটি উপায় হ'ল বিল্টিন ( ) ব্যবহার করা বা ইউটিলিটিটি ( ) ব্যবহার করা।"$(whence -p test)"
=test
command
command -p test …
env
env test …
Zsh এ, আপনি এর সাথে একটি বিল্টিন অক্ষম করতে পারেন disable test
। বিল্টিনটি পুনরায় সক্ষম না করা পর্যন্ত এটি স্থায়ী (বর্তমান শেল বা সাবশেলের জন্য) enable test
। ব্যাশে, আপনি enable -n test
অক্ষম করতে এবং enable test
পুনরায় সক্ষম করতে একই কাজ করতে পারেন ।
আপনি একটি পৃথক কমান্ড কার্যকর করতে বাধ্য করার জন্য একটি নাম বা ফাংশন ব্যবহার করতে পারেন, উদাহরণস্বরূপ alias test=/usr/bin/test
বা test () { /usr/bin/test "$@"; }
। আপনার যদি এমন কোনও উপাধি থাকে তবে আপনি এর কোনও অংশ উদ্ধৃত করে এর ব্যবহার রোধ করতে পারেন, যেমন\test
সাধারণ ফাংশন / বিল্টিন / বাহ্যিক অনুসন্ধান সম্পাদন করবে। নোট করুন যে শেল এবং তার সেটিংসের উপর নির্ভর করে কোনও ফাংশনটিতে পড়ার সময় বা এটি কার্যকর করার সময় কোনও ফাংশনে উরফ সংজ্ঞাগুলি বাড়ানো যেতে পারে। যদি আপনি কোনও ফাংশন সংজ্ঞায়িত করেন তবে আপনি ফাংশন সন্ধানের command test
পাশাপাশি ওরফে test
লুকোচুরি প্রতিরোধ করতেও ব্যবহার করতে পারেন (তাই এখানে বিল্টিন অক্ষম না করা হলে আহ্বান করা হবে)।
/usr/bin/test -f "$file"
...