सबसे पहले, आप के रूप में स्पष्ट रूप से दुभाषिया का उपयोग कर एक स्क्रिप्ट चलाने,
$ python ./my_script.py
$ ksh ~/bin/redouble.sh
$ lua5.1 /usr/local/bin/osbf3
#!
लाइन हमेशा अनदेखा की जाती है। #!
लाइन निष्पादन योग्य स्क्रिप्ट्स की यूनिक्स सुविधा है, और आप इसे man page for execve(2)
पर पूर्ण रूप से प्रलेखित देख सकते हैं। वहां आप पाएंगे कि #!
का पालन करने वाला शब्द वैध निष्पादन योग्य का पथनाम होना चाहिए। तो
#!/usr/bin/env python
कार्यान्वित जो कुछ python
उपयोगकर्ताओं $PATH
पर है। यह फ़ॉर्म पाइथन दुभाषिया के चारों ओर स्थानांतरित होने के लिए लचीला है, जो इसे कुछ और पोर्टेबल बनाता है, लेकिन इसका मतलब यह भी है कि उपयोगकर्ता $PATH
में इससे आगे कुछ डालकर मानक पायथन दुभाषिया को ओवरराइड कर सकता है। अपने लक्ष्यों के आधार पर, यह व्यवहार ठीक हो सकता है या नहीं भी हो सकता है।
इसके बाद, सामान्य स्थिति है कि एक अजगर दुभाषिया /usr/bin
में स्थापित किया गया है के साथ
#!/usr/bin/python
से संबंधित है। अगर यह कहीं और स्थापित है, तो आप हार जाते हैं।लेकिन इस
#!/usr/bin/python2.5
अंत में के रूप में एक अच्छा तरीका है कि आप सुनिश्चित करने के लिए सभी पर आप चाहते हैं वास्तव में संस्करण या और कुछ नहीं ("असफल-स्टॉप" व्यवहार) है,
#!python
केवल तभी काम करता है स्क्रिप्ट चलने पर वर्तमान निर्देशिका में python
निष्पादन योग्य है। सिफारिश नहीं की गई।
स्रोत
2010-06-28 01:33:34
कि शीर्ष लेख कुटिया http://en.wikipedia.org/wiki/Shebang_%28Unix%29 – systempuntoout
FYI करें जब आप ढंग '$ अजगर में एक स्क्रिप्ट।/My_script.py' चलाने (निर्दिष्ट करने' python' स्पष्ट रूप से कहा जाता है), शेबांग ('#!') लाइन को अनदेखा किया जाता है। इसका प्रभाव केवल तभी होता है जब आप स्क्रिप्ट को निष्पादन योग्य के रूप में चलाते हैं, उदा। '$।/my_script.py'। –
@ डेविड ज़ास्लावस्की: +1 अच्छी पकड़। –