अजगर ट्रिपल उद्धृत तार का समर्थन करता है
'something'
चार उद्धरण का उपयोग करके, sh
देखता है कि के रूप में 2 रिक्त स्ट्रिंग है, लेकिन अजगर ट्रिपल-उद्धृत स्ट्रिंग की शुरुआत के रूप में पहले तीन को देखता है, और चौड़ाई को स्ट्रिंग मान के हिस्से के रूप में शामिल करता है।
शेष रेखा को sh
द्वारा कमांड के रूप में व्याख्या किया जाता है, लेकिन पायथन द्वारा स्ट्रिंग के हिस्से के रूप में।
#
तो एक टिप्पणी रूपों जहाँ तक sh
का संबंध है, लेकिन यह अभी भी अजगर के लिए एक स्ट्रिंग है, यह बंद बंद करने के लिए एक बंद करने ट्रिपल उद्धरण के साथ।
तो, संक्षेप में प्रस्तुत करने के लिए:
sh
देखता है: रिक्त स्ट्रिंग (''
) - रिक्त स्ट्रिंग (''
) - आदेश (exec python -u -- "$0" ${1+"[email protected]"}
) - टिप्पणी (# '''
)
- पायथन देखता है: ट्रिपल-उद्धृत स्ट्रिंग शाब्दिक (वर्ण
'exec python -u -- "$0" ${1+"[email protected]"} #
)
तो sh
कि आदेश निष्पादित करता है, स्क्रिप्ट नाम और आदेश पंक्ति तर्क के बाकी के साथ python -u --
साथ ही जगह है, और अजगर इस फाइल को पढ़ता है और सिर्फ एक प्रारंभिक शाब्दिक स्ट्रिंग है जो कहीं भी नहीं जा रहा है देखता है।
क्योंकि यह फ़ाइल में पहली स्ट्रिंग अक्षर है, इसे __main__
मॉड्यूल के लिए डॉकस्ट्रिंग के रूप में सेट किया जाएगा, लेकिन यह शायद ही कोई फर्क नहीं पड़ता कि यह मुख्य स्क्रिप्ट है।
स्रोत
2013-07-03 21:41:03
बस ध्यान दें कि इस का शुभारंभ करेंगे * '$ PATH' में किसी भी * अजगर तो यह ** बहुत असुरक्षित **' # की तुलना में/usr/bin/env मैं है! पाइथन * * या * (यहां तक कि बेहतर) पूर्ण पथ को जानना और उपयोग करना: '#!/usr/bin/python'। –