<मजबूत>#! – आमतौर पर उपनाम शेबांग , शबांग , हैशबैंग , पाउंडबैंग - हम शेबांग . के साथ बने रहेंगे इस लेख की अवधि के लिए।
यह अनगिनत लिनक्स शेल स्क्रिप्ट की शुरुआत में पाया जाता है - लेकिन वास्तव में यह क्या है? आइए इसे तोड़ दें।
यह आमतौर पर कुछ इस तरह दिखता है
#!/bin/bash
#! फ़ाइल की शुरुआत में दिखाई देता है, आमतौर पर पहली पंक्ति पर, उसके बाद एक निष्पादन योग्य के लिए पथ (इस मामले में, bash खोल)।
यह एक टिप्पणी है
यह एक #, . से शुरू होता है इसलिए इसे स्क्रिप्ट के हिस्से के रूप में ही निष्पादित नहीं किया जाता है - यह प्रभावित करता है कि स्क्रिप्ट कैसे संचालित होती है, हालांकि, क्योंकि …
यह एक दुभाषिया निर्देश को आगे बढ़ाता है
शेबैंग सिस्टम को बताता है कि किस दुभाषिया को स्क्रिप्ट चलाने के लिए उपयोग करना है, इसे दुभाषिया निष्पादन योग्य पथ देकर।
- इसे आमतौर पर फ़ाइल की शुरुआत में, पहली पंक्ति में रखा जाता है, ताकि सही दुभाषिया बाकी फ़ाइल को संभाल सके।
- दिया गया पथ एक पूर्ण पथ . होना चाहिए एक उपयुक्त निष्पादन योग्य के लिए
- शेबैंग लाइन में विकल्प हो सकते हैं जो दुभाषिया को भेजे जा सकते हैं, लेकिन इस पर समर्थन आपके परिवेश के आधार पर भिन्न होता है - केवल एक विकल्प को शामिल करना सबसे सुरक्षित है।
उदाहरण
नीचे कुछ #! . हैं उदाहरण और उनका क्या मतलब है:
बैश
#!/bin/bash
इस लाइन को स्क्रिप्ट की शुरुआत में रखने से सिस्टम को पता चल जाएगा कि इसे बैश का उपयोग करके निष्पादित किया जाना चाहिए। शेल निष्पादन योग्य।
zsh
#!/bin/zsh
इस लाइन को स्क्रिप्ट की शुरुआत में रखने से सिस्टम को पता चल जाएगा कि इसे zsh का उपयोग करके निष्पादित किया जाना चाहिए। शेल निष्पादन योग्य।
बैश . के बीच अंतर पर हमारा लेख पढ़ें और zsh यहाँ!
पायथन
#!/usr/bin/env python3
पायथन 3 का उपयोग करके स्क्रिप्ट निष्पादित करें। यहां ध्यान दें कि python3 के लिए पथ निर्दिष्ट करने के बजाय निष्पादन योग्य, यह लाइन वर्तमान में उपयोगकर्ताओं के पर्यावरण के लिए परिभाषित python3 निष्पादन योग्य पाती है।
कुछ नहीं!
#!/bin/false
विफलता स्थिति कोड देता है और स्क्रिप्ट निष्पादित नहीं करता है। उन लिपियों में उपयोग किया जाता है जिन्हें सीधे निष्पादित करने का इरादा नहीं है।
# को दरकिनार करते हुए!
अगर आप एक #! . के साथ कोई स्क्रिप्ट चला रहे हैं इस तरह:
./myscript.sh
यहां myscript.sh आपकी स्क्रिप्ट का नाम है - शेबैंग यह निर्धारित करने के लिए प्रयोग किया जाता है कि किस दुभाषिया का उपयोग किया जाना है।
उपरोक्त केवल उन स्क्रिप्ट पर किया जा सकता है जहां वर्तमान उपयोगकर्ता के पास निष्पादित . है अनुमति।
यदि, हालांकि, आप निम्न कार्य करते हैं:
bash myscript.sh
...शेबैंग लाइन है नहीं यह निर्धारित करने के लिए उपयोग किया जाता है कि किस दुभाषिया का उपयोग करना है, जैसा कि हमने इसे कॉल करने के लिए उपयोग की जाने वाली कमांड में बैश निर्दिष्ट किया है। ऐसा करने के लिए स्क्रिप्ट के लिए केवल पढ़ने की अनुमति की आवश्यकता है, क्योंकि स्क्रिप्ट निष्पादित नहीं की जा रही है, bash निष्पादित किया जा रहा है।