क्या स्क्रिप्ट को निष्पादित करने वाले दुभाषिया को गतिशील रूप से चुनने का कोई तरीका है? मेरे पास एक स्क्रिप्ट है जिसे मैं दो अलग-अलग प्रणालियों पर चला रहा हूं, और जिस दुभाषिया का मैं उपयोग करना चाहता हूं वह दो प्रणालियों पर विभिन्न स्थानों में स्थित है। हर बार जब मैं स्विच करता हूं तो मैं हैशबैंग लाइन को बदल देता हूं। मैं ऐसा कुछ करना चाहता हूं जो इस के तार्किक समकक्ष हो (मुझे पता है कि यह सटीक निर्माण असंभव है):
if running on system A:
#!/path/to/python/on/systemA
elif running on system B:
#!/path/on/systemB
#Rest of script goes here
या इससे भी बेहतर यह होगा, ताकि यह पहले दुभाषिया का उपयोग करने की कोशिश करे, और अगर यह नहीं मिलता है तो यह दूसरा उपयोग करता है:
try:
#!/path/to/python/on/systemA
except:
#!path/on/systemB
#Rest of script goes here
जाहिर है, मैं इसके बजाय इसे निष्पादित कर सकता हूं
/path/to/python/on/systemA myscript.py
या /path/on/systemB myscript.py
जहां मैं हूं, उसके
आधार पर, लेकिन मेरे पास वास्तव में एक आवरण स्क्रिप्ट है जो लॉन्च करता है myscript.py
, इसलिए मैं हाथ से करने के बजाय अजगर इंटरप्रेटर को पथ निर्दिष्ट करना चाहूंगा।
if
शर्त का उपयोग करना आपके लिए कोई विकल्प नहीं है? जैसे,if something; then /bin/sh restofscript.sh elif...