मैं उपयोग करने की सलाह देता हूं:
#!/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/bash
OpenBSD पर इसका ।