मैं उपयोग करने की सलाह देता हूं:
#!/bin/bash
यह 100% पोर्टेबल नहीं है (कुछ सिस्टम bashएक स्थान के अलावा किसी अन्य स्थान पर हैं /bin), लेकिन यह तथ्य कि बहुत सी मौजूदा स्क्रिप्ट्स #!/bin/bashविभिन्न ऑपरेटिंग सिस्टमों का उपयोग करती हैं /bin/bash, कम से कम मुख्य स्थान के लिए सिमलिंक बनाने के लिए।
का विकल्प:
#!/usr/bin/env bash
सुझाव दिया गया है - लेकिन इस बात की कोई गारंटी नहीं है कि envकमांड में है /usr/bin(और मैंने सिस्टम का उपयोग किया है जहां यह नहीं है)। इसके अलावा, यह फ़ॉर्म bashवर्तमान उपयोगकर्ताओं में पहले उदाहरण का उपयोग करेगा $PATH, जो बैश शेल का उपयुक्त संस्करण नहीं हो सकता है।
(लेकिन /usr/bin/envकिसी भी कारण envसे आधुनिक प्रणाली पर काम करना चाहिए, क्योंकि या तो है /usr/binया क्योंकि सिस्टम इसे काम करने के लिए कुछ करता है। जिस सिस्टम को मैंने ऊपर उल्लेखित किया था वह सनोस 4 था, जिसे मैंने लगभग 25 वर्षों में उपयोग नहीं किया है।)
यदि आपको ऐसी प्रणाली पर चलने के लिए स्क्रिप्ट की आवश्यकता है जो आपके पास नहीं है /bin/bash, तो आप स्क्रिप्ट को सही स्थान पर इंगित करने के लिए संशोधित कर सकते हैं (जो कि अनिवार्य रूप से असुविधाजनक है)।
मैं में अधिक से अधिक गहराई में समझौतों से चर्चा की है मेरा उत्तर करने के लिए इस सवाल का ।
एक हद तक अस्पष्ट अद्यतन: एक प्रणाली मैं उपयोग करते हैं, Termux , एक डेस्कटॉप-लिनक्स-जैसा परत एंड्रॉयड के तहत रन भी नहीं है कि /bin/bash( bashहै /data/data/com.termux/files/usr/bin/bash) - लेकिन यह समर्थन करने के लिए विशेष हैंडलिंग है #!/bin/bash।
/usr/local/bin/bashOpenBSD पर इसका ।