यह एक सम्मेलन है इसलिए * निक्स खोल जानता है कि किस प्रकार का दुभाषिया चलाने के लिए।
उदाहरण के लिए, ATT के पुराने जायके, श (बॉर्न शैल) सामान्य रूप से, जबकि बीएसडी के पुराने संस्करणों csh (सी खोल) को चूक।
यहां तक कि आज (जहां अधिकांश सिस्टम बैश चलाने के लिए, "बॉर्न फिर शैल"), लिपियों बैश, अजगर, पर्ल, रूबी, पीएचपी, में किया जा सकता है आदि, आदि उदाहरण के लिए, आप देख सकते हैं #!/bin/perl
या #!/bin/perl5
।
पुनश्च: विस्मयादिबोधक चिह्न (!
) प्यार से "बैंग" कहा जाता है। खोल टिप्पणी प्रतीक (#
) कभी-कभी "हैश" कहा जाता है।
पी पी एस: याद रखें -, * nix के तहत एक फ़ाइल प्रकार के साथ एक प्रत्यय जोड़ महज एक सम्मेलन, नहीं एक "नियम" है। एक निष्पादन योग्य एक बाइनरी प्रोग्राम हो सकता है, कोई भी लाखों स्क्रिप्ट प्रकारों और अन्य चीजों में से एक भी हो सकता है। इसलिए #!/bin/bash
की आवश्यकता है।
आपको इसकी आवश्यकता नहीं है और आपको तब तक नहीं करना चाहिए जब तक आपके पास कोई विकल्प न हो। जब आप कर सकते हैं और '(POSIX) खोल और बैश के बीच के अंतर के बारे में जानें, तो' #!/Bin/sh 'का उपयोग करें। आपके रेज़्यूमे में बहुत अधिक समय बढ़ने से एक दिन पहले आएगा जब आप खुद को एक अलग शैल वाले सिस्टम पर पाएंगे और आप अभी भी अपनी स्क्रिप्ट को काम करना चाहते हैं। – Jens
इसे "हैश-बैंग" या "शे-बैंग" कहा जाता है। – Beachhouse
मुझे लगता है कि यह ध्यान देने योग्य है कि यह केवल तभी निष्पादित किया जाता है जब आप अपनी स्क्रिप्ट को निष्पादन योग्य के रूप में चलाते हैं। तो यदि आप निष्पादन योग्य ध्वज सेट करते हैं और फिर '।/Yourscript.extension' टाइप करें, उदाहरण के लिए,'।/Helloworld.py' या '।/Helloworld.sh', तो वह उस शीर्ष रेखा पर दुभाषिया की तलाश करेगा, जो होगा '#!/bin/python' या '! #/bin/bash' हो, जबकि' python helloworld.py' जैसी स्क्रिप्ट को निष्पादित करते समय, पहली पंक्ति नहीं देखी जाएगी क्योंकि इसकी टिप्पणी की गई है। तो यह खोल/कर्नेल के लिए एक विशेष अनुक्रम है। – JFA