Bash
स्क्रिप्ट शेबंग
खोज…
वाक्य - विन्यास
बैश दुभाषिया के रूप में उपयोग करें
/bin/bash
:#! / Bin / bash
PATH
पर्यावरण चर में bv दुभाषिया कोenv
निष्पादन योग्य के साथ खोजें:#! / usr / bin / env बैश
टिप्पणियों
एक सामान्य गलती यह है कि UNIX / Linux सिस्टम पर विंडोज एंड-लाइन फॉर्मैटेड \r\n
स्क्रिप्ट फ़ाइलों को निष्पादित करने का प्रयास किया जाता है, इस मामले में शेबंग में प्रयुक्त स्क्रिप्ट दुभाषिया है:
/bin/bash\r
और बेखबर नहीं पाया जाता है, लेकिन यह पता लगाना मुश्किल हो सकता है।
सीधा शेबंग
bash
दुभाषिया के साथ एक स्क्रिप्ट फ़ाइल को निष्पादित करने के लिए, एक स्क्रिप्ट फ़ाइल की पहली पंक्ति को उपयोग करने के लिए निष्पादन योग्य bash
लिए पूर्ण पथ का संकेत देना चाहिए:
#!/bin/bash
शेबबैंग में bash
पथ को हल किया जाता है और इसका उपयोग केवल तभी किया जाता है जब कोई स्क्रिप्ट इस तरह सीधे लॉन्च की जाती है:
./script.sh
स्क्रिप्ट को निष्पादन की अनुमति होनी चाहिए।
शेब को नजरअंदाज कर दिया जाता है, जब एक स्क्रिप्ट को निष्पादित करने के लिए bash
दुभाषिया को स्पष्ट रूप से इंगित किया जाता है:
bash script.sh
एनव शेबंग
निष्पादन योग्य env
का उपयोग करके PATH
पर्यावरण चर में पाए जाने वाले bash
निष्पादन योग्य के साथ एक स्क्रिप्ट फ़ाइल को निष्पादित करने के लिए, स्क्रिप्ट फ़ाइल की पहली पंक्ति को तर्क bash
साथ env
निष्पादन योग्य के लिए निरपेक्ष पथ को इंगित करना चाहिए:
#!/usr/bin/env bash
शबंग में env
पथ को हल किया जाता है और इसका उपयोग केवल तभी किया जाता है जब कोई स्क्रिप्ट सीधे इस तरह लॉन्च होती है:
script.sh
स्क्रिप्ट को निष्पादन की अनुमति होनी चाहिए।
शेब को नजरअंदाज कर दिया जाता है, जब एक स्क्रिप्ट को निष्पादित करने के लिए bash
दुभाषिया को स्पष्ट रूप से इंगित किया जाता है:
bash script.sh
अन्य शेबंग
कर्नेल के कार्यक्रमों के दो प्रकार हैं। एक बाइनरी प्रोग्राम की पहचान ईएलएफ ( ई xtenable L oadable F ormat) हेडर द्वारा की जाती है, जो आमतौर पर कंपाइलर द्वारा निर्मित किया जाता है। दूसरा किसी भी तरह की स्क्रिप्ट हैं।
यदि कोई फ़ाइल अनुक्रम # के साथ पहली पंक्ति में शुरू होती है ! फिर अगले स्ट्रिंग को दुभाषिया का एक मार्गनाम होना चाहिए। यदि कर्नेल इस लाइन को पढ़ता है, तो वह इस pathname द्वारा नामित दुभाषिया को कॉल करता है और इस पंक्ति में निम्नलिखित सभी शब्दों को दुभाषिया के तर्क के रूप में देता है। यदि "कुछ" या "गलत" नाम की कोई फ़ाइल नहीं है:
#!/bin/bash something wrong
echo "This line never gets printed"
बैश अपने तर्क "कुछ गलत" को अंजाम देने की कोशिश करता है जो मौजूद नहीं है। स्क्रिप्ट फ़ाइल का नाम भी जोड़ा गया है। इसे स्पष्ट रूप से देखने के लिए इको शेबंग का उपयोग करें:
#"/bin/echo something wrong
# and now call this script named "thisscript" like so:
# thisscript one two
# the output will be:
something wrong ./thisscript one two
कुछ प्रोग्राम जैसे कि awk इस तकनीक का उपयोग डिस्क फाइल में रहने वाली लंबी स्क्रिप्ट को चलाने के लिए करते हैं।