অনেকগুলি প্রোগ্রাম এই কৌশলটি ব্যবহার করে যেখানে একটি একক এক্সিকিউটেবল থাকে যা এটি কার্যকর করা হয় তার উপর নির্ভর করে তার আচরণকে পরিবর্তন করে।
প্রোগ্রামের ভিতরে সাধারণত একটি কাঠামো থাকে যা কেস / স্যুইচ স্টেটমেন্ট নামে পরিচিত যা নির্বাহী নামটি সঙ্গে ডাকা হয়েছিল তা নির্ধারণ করে এবং তারপরে সেই নির্বাহী নামের জন্য উপযুক্ত কার্যকারিতা কল করবে। নামটি সাধারণত প্রোগ্রামটি প্রাপ্ত প্রথম যুক্তি। উদাহরণস্বরূপ, আপনি C
যখন লিখবেন:
int main(int argc, char** argv)
argv[0]
বলা হয় এক্সিকিউটেবলের নাম। কমপক্ষে, এটি সমস্ত শাঁসের জন্য এটি স্ট্যান্ডার্ড আচরণ, এবং সমস্ত এক্সিকিউটেবল যা আর্গুমেন্ট ব্যবহার করে সে সম্পর্কে এটি সচেতন হওয়া উচিত।
পার্ল উদাহরণ
পার্লের সাথে একত্রিত একটি স্বতন্ত্র উদাহরণ এখানে কৌশলটিও দেখায়।
এখানে আসল স্ক্রিপ্ট, কল করুন mycmd.pl
:
#!/usr/bin/perl
use feature ':5.10';
(my $arg = $0) =~ s#./##;
my $msg = "I was called as: ";
given ($arg) {
$msg .= $arg when 'ls';
$msg .= $arg when 'find';
$msg .= $arg when 'pwd';
default { $msg = "Error: I don't know who I am 8-)"; }
}
say $msg;
exit 0;
ফাইল সিস্টেম সেটআপ করা হল:
$ ls -l
total 4
lrwxrwxrwx 1 saml saml 8 May 24 20:49 find -> mycmd.pl
lrwxrwxrwx 1 saml saml 8 May 24 20:34 ls -> mycmd.pl
-rwxrwxr-x 1 saml saml 275 May 24 20:49 mycmd.pl
lrwxrwxrwx 1 saml saml 8 May 24 20:49 pwd -> mycmd.pl
এখন যখন আমি আমার আদেশগুলি পরিচালনা করি:
$ ./find
I was called as: find
$ ./ls
I was called as: ls
$ ./pwd
I was called as: pwd
$ ./mycmd.pl
Error: I don't know who I am 8-)