स्पष्ट रूप से 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
(बिना किसी प्रत्यय के) अंदर जाते हैं।