मैंने Google की खोज की लेकिन इस सरल प्रश्न का उत्तर नहीं मिला। (! #) मैं एक अजगर स्क्रिप्ट हैश धमाके पहली पंक्ति पर है कि है:# का पसंदीदा तरीका! खोल स्क्रिप्ट में
#!/usr/bin/python
हालांकि, इस अगर/bin/अजगर में अजगर के साथ एक कंप्यूटर पर चलाया जाता है या/usr/स्थानीय/बिन/पायथन, या कुछ अन्य जगह? एक शेल स्क्रिप्ट के लिए दुभाषिया सेट करने के लिए एक बेहतर तरीका होना चाहिए। इसे $ PATH के माध्यम से सेट करना संभव होना चाहिए, क्योंकि यह पता चलेगा कि सिस्टम पर इंस्टॉल होने पर पाइथन कहां मिलना है।
मुझे नहीं पता था कि env ने ऐसा किया था! लेकिन, यह एक मामूली सुरक्षा जोखिम है - एक दुर्भावनापूर्ण उपयोगकर्ता अपना स्वयं का द्विआधारी कोड ./python में रख सकता है और लक्ष्य उपयोगकर्ता के रूप में कार्यवाही निष्पादित कर सकता है जब भी उपयोगकर्ता "।" अपने $ PATH में इस हैश-बैंग लाइन के साथ एक पायथन लिपि चलाता है। –
आपकी बाइनरी के लिए पाथ खोजना सामान्य है। आपके परिदृश्य में समस्या यह है कि उपयोगकर्ता के पास "।" है उनके पथ में, नहीं कि वे आदेश चलाने के लिए खोल निर्मित पैथ का उपयोग कर रहे हैं। –
@ फिल: सिद्धांत रूप में मैं सहमत हूं कि समस्या $ पाथ के साथ है, लेकिन व्यावहारिक रूप से, यदि उपयोगकर्ता आमतौर पर यह गलती करते हैं तो कुछ हद तक इसे अनदेखा करने के लिए गैर जिम्मेदार है। –