স্পষ্টতই binডিরেক্টরিতে এক্সিকিউটেবল ফাইল এবং সম্পাদনাযোগ্য "উত্স" ফাইলগুলির মধ্যে কিছু পার্থক্য রয়েছে ।
- উত্স ফাইলগুলির জন্য, এটি প্রত্যয় রাখা সহায়ক, যাতে আপনি কী কী তা দেখতে পারেন এবং
#!লাইন স্ক্যান করতে ব্যর্থ কিছু কম বুদ্ধিমান সরঞ্জামকে সহায়তা করতে পারেন ।
- মডিউল জন্য, তারা শুধুমাত্র প্রোগ্রাম, যার সব একই ব্যাখ্যাকারী (অথবা কোন ব্যাখ্যাকারী) ব্যবহার একটি সংশ্লিষ্ট সেট ব্যবহার করছি, এবং এটি অন্তর্ভুক্ত করা সাধারণভাবে ব্যবহৃত হয়
.pm, .shবা .soএই ক্ষেত্রে।
- এক্সিকিউটেবল প্রোগ্রামগুলির জন্য, এর নামটি "প্রোগ্রামিং চুক্তির" অংশ যা ব্যবহারকারী এবং অন্যান্য স্ক্রিপ্টগুলি এটির জন্য আবেদন করে। এটি বাস্তবায়নের পরেও নামটি পরিবর্তন না হওয়া গুরুত্বপূর্ণ ; সুতরাং স্পষ্টতই ফাইলের নামটির প্রত্যয় থাকা উচিত নয়
সংকলিত প্রোগ্রামের ক্ষেত্রে, "উত্স" এবং "এক্সিকিউটেবল" এর মধ্যে পার্থক্য সুস্পষ্ট: একটিতে সোর্স কোড থাকে, অন্যটিতে মেশিন ল্যাঙ্গুয়েজ থাকে বা বাইটোকডকে ব্যাখ্যা করা হয়। স্ক্রিপ্টের ক্ষেত্রে, কোনও স্পষ্ট পার্থক্য নেই, তবে makeকমান্ডটি "স্ক্রিপ্টের উত্স কোড" এবং "একটি স্ক্রিপ্টের নির্বাহযোগ্য সংস্করণ" এর মধ্যে একটি ধারণাগত বিচ্ছেদ বজায় রাখে: "শেল স্ক্রিপ্ট" এর জন্য এটির ডিফল্ট "সংকলক" কেবল সহজ cp।
আমি একটি পৃথক $HOME/sourceডিরেক্টরি রাখার সুপারিশ করব , এবং হয়:
- একটি সিমিলিংক রাখা, যেমন তৈরি করা
ln -s ../source/foo.sh $HOME/bin/foo; অথবা
- পরিবর্তন করে (এবং সেগুলি পরীক্ষা করে) ব্যবহার করে ম্যানুয়ালি অনুলিপি করুন
install -m 755 foo.sh ../bin/foo; অথবা
Makefileথেকে উত্স ফাইলটি অনুলিপি করার আগে একটি সিনট্যাক্স চেক সম্পাদন করতে একটি নিয়ম ব্যবহার $HOME/sourceকরে$HOME/bin
পাদটীকা: একটি শেল স্ক্রিপ্ট মডিউল অন্য শেল স্ক্রিপ্ট দ্বারা শুধুমাত্র ব্যবহারযোগ্য, এবং মডিফাই ব্যবহার স্ক্রিপ্ট অভ্যন্তরীণ প্রসঙ্গ .বা sourceবিল্ট ইন কমান্ড। এটি একটি এক্সিকিউটেবল স্ক্রিপ্ট থেকে পৃথক, যা (কোনও প্রোগ্রামের মতো) পৃথক প্রক্রিয়া হিসাবে চালিত হয় এবং এর প্যারেন্ট প্রক্রিয়াটি পরিবর্তন করতে পারে না। মোটামুটি কনভেনশন হিসাবে, মডিউলগুলি প্রবেশ করে /usr/lib/name_of_program/name_of_module.shযেখানে কমান্ডগুলি প্রবেশ করে /usr/bin/name_of_command(কোনও প্রত্যয় ছাড়াই)।