বিল্টিন দুটি শ্রেণি রয়েছে:
কিছু কমান্ড শেল প্রোগ্রামে নিজেই তৈরি করতে হয় কারণ তারা বাহ্যিক হলে তারা কাজ করতে পারে না।
cd
এটির মধ্যে একটি হ'ল যদি এটি বাহ্যিক হয় তবে এটি কেবল নিজস্ব ডিরেক্টরি পরিবর্তন করতে পারে; এটি শেলের বর্তমান কার্যকারী ডিরেক্টরিকে প্রভাবিত করতে পারে না। (আরও দেখুন: একটি প্রোগ্রাম কেন হয় cd
না? )
অন্যান্য শ্রেণীর কমান্ডগুলি খাঁটিভাবে দক্ষতার জন্য তৈরি করা হয়।
Man পৃষ্ঠা আছে যা উল্লেখ builtins উপর একটি অধ্যায় আছে , এবং এই শ্রেণীর হিসেবে কমান্ড উদাহরণ।dash
printf
echo
test
ইউনিক্স সিস্টেমগুলি সর্বদা দ্বিতীয় শ্রেণীর কমান্ডের জন্য পৃথক এক্সিকিউটেবলকে অন্তর্ভুক্ত করে। এই পৃথক এক্সিকিউটেবলগুলি আমি ব্যবহার করেছি এমন প্রতিটি ইউনিক্সি সিস্টেমে এখনও উপলভ্য, যদিও সেগুলি আপনার ব্যবহারের সম্ভাব্য প্রতিটি শেলের মধ্যেও নির্মিত। ( পসিক্সের আসলে এই এক্সিকিউটেবলগুলি উপস্থিত থাকা প্রয়োজন))
আমি বিশ্বাস করি echo
এটিএন্ডটি ইউনিক্স সিস্টেম ভি রিলিজ ৩.১ এ শেল তৈরি হয়েছে। আমি এটি ভিত্তি করে এটিটি এন্ড এসএস 3 বি 1 সিরিজ ইউনিক্স সিস্টেমের জন্য ম্যানুয়াল দুটি পৃথক সংস্করণের তুলনা করে । কেউ এই ম্যানুয়ালগুলির 1986 সংস্করণ দয়া করে স্ক্যান করে অনলাইনে রেখেছেন ; এগুলি এসভিআর 3 এর মূল প্রকাশের সাথে মিলে যায়। আপনি দেখতে পাবেন যে ইউনিক্স সিস্টেম ভি ব্যবহারকারীর ম্যানুয়াল, দ্বিতীয় খণ্ডেরecho
523 পৃষ্ঠার তালিকায় নেই , যেখানে কমান্ডটি শেলটি তৈরি করা থাকলে আপনি এটি আশা করতে পারেন। 1987 থেকে SVR3.1 ম্যানুয়াল আমার স্থানীয় কাগজ কপি সালে করা হয় ম্যানুয়াল এই বিভাগে তালিকাভুক্ত।echo
আমি নিশ্চিত যে এটি বার্কলে সিএসআরজি উদ্ভাবন নয় যা এটিএন্ডটি ঘরে ফিরিয়ে এনেছে। 4.3BSD একই বছর এসভিআর 3, 1986 হিসাবে প্রকাশিত হয়েছিল, তবে আপনি যদি 4.3BSD এর sh.1 ম্যানপেজটি দেখেন তবে আপনি দেখতে পাবেন যে echo
"স্পেশাল কমান্ডস" বিভাগের অন্তর্নির্মিত কমান্ডের তালিকায় নেই। যদি সিএসআরজি এটি করে, এটি আমাদের প্রমাণ করার জন্য একটি নথিভুক্ত উত্স চায়।
এই মুহুর্তে, আপনি ভাবতে পারেন echo
যে এসভিআর 3 .1 এর আগে শেলের মধ্যে নির্মিত হয়েছিল এবং এই সত্যটি কেবল তখন পর্যন্ত নথিভুক্ত করা হয়নি। আমার কাছে উপলব্ধ নতুন প্রি-এসভিআর 3 এটিএন্ডটি ইউনিক্স উত্স কোডটি পিডিপি -11 সিস্টেম তৃতীয় টারবালটিতে রয়েছে , যেখানে আপনি বোর্ন শেল উত্স কোডটি পাবেন। আপনি echo
বিল্টিন কমান্ড টেবিলটিতে পাবেন না, যা এতে রয়েছে /usr/src/cmd/sh/msg.c
। সেই ফাইলে থাকা টাইমস্ট্যাম্পগুলির ভিত্তিতে এটি প্রমাণ করে যে echo
1980 সালে অবশ্যই শেলের মধ্যে ছিল না।
তুচ্ছ বস্তু
একই ডিরেক্টরিতে এমন একটি ফাইলও রয়েছে builtin.c
যা এই প্রশ্নের জন্য কোনও অন-পয়েন্ট ধারণ করে না, তবে আমরা এই আকর্ষণীয় মন্তব্যটি পাই:
/*
builtin commands are those that Bourne did not intend
to be part of his shell.
Redirection of i/o, or rather the lack of it, is still a
problem..
*/