मैं कहूंगा कि फ़ाइल एक्सटेंशन के लिए कोई "अच्छा व्यवहार" मौजूद नहीं है, कड़ाई से एक तकनीकी पर: यूनिक्स / लिनक्स / * बीएसडी फाइल सिस्टम प्रति एक्सटेंशन एक्सटेंशन का समर्थन नहीं करते हैं। जिसे आप एक एक्सटेंशन कह रहे हैं, वह केवल एक एकल फ़ाइल नाम का एक प्रत्यय है। यह वीएम / सीएमएस, वीएमएस, एमएस-डॉस और विंडोज फाइल सिस्टम और ओएस से अलग है जहां इनोड-नैतिक-समकक्ष का एक विशेष स्थान एक विस्तार के लिए आरक्षित है।
उस छोटे शेख़ी पर अब, मुझे लगता है कि शेल स्क्रिप्ट फ़ाइल नाम पर ".sh" या ".ksh" या ".बैश" प्रत्यय लगाना थोड़ा मूर्खतापूर्ण है। एक प्रोग्राम एक प्रोग्राम है: जो निष्पादित होता है उसे प्रतिष्ठित करने में कोई लाभ मौजूद नहीं है। कोई भी यूनिक्स या लाइनक्स या जो कुछ कर्नेल ने फ़ाइल नाम प्रत्यय के कारण किसी फ़ाइल पर दुभाषिया को कॉल करने का निर्णय लिया है। यह सब #!
लाइन द्वारा किया जाता है , या फ़ाइल के आरंभ में कुछ अन्य "मैजिक नंबर" बाइट्स का क्रम होता है। वास्तव में, एक फ़ाइल नाम "एक्सटेंशन" के आधार पर क्या निष्पादित करना है, यह तय करना विंडोज को मैलवेयर चुंबक बनाने वाले कारकों में से एक है। देखें कि कितने विंडोज मालवेयर स्कैम में "something.jpg.exe" नामक फ़ाइल शामिल है - डिफ़ॉल्ट रूप से नए विंडोज ".exe" एक्सटेंशन को नहीं दिखाते हैं, और उपयोगकर्ता को केवल "डबल क्लिक" करने के लिए प्रोत्साहित करते हैं।
जैसा कि आप सीधे-सीधे आदेश के बारे में सोच सकते हैं, वैसे भी अक्सर एक शेल स्क्रिप्ट है। कभी-कभी cc
एक श-लिपि रही है, firefox
एक श-लिपि है, startx
एक श-लिपि है। मुझे विश्वास नहीं है कि ".sh" प्रत्यय के साथ एक स्क्रिप्ट को चिह्नित करने के लिए एक संज्ञानात्मक या संगठनात्मक लाभ है।
bash script.sh
(याsh
निश्चित रूप से) उन्हें चलाने के लिए संकेत हो सकता है ।