มีวิธีใดบ้างในการเลือกล่ามที่กำลังเรียกใช้สคริปต์แบบไดนามิก ฉันมีสคริปต์ที่ฉันใช้ในระบบที่แตกต่างกันสองระบบและล่ามที่ฉันต้องการใช้นั้นจะอยู่ในตำแหน่งที่ตั้งที่ต่างกันในทั้งสองระบบ สิ่งที่ฉันต้องทำคือเปลี่ยนสาย hashbang ทุกครั้งที่เปลี่ยนไป ฉันต้องการทำบางสิ่งที่เทียบเท่ากับตรรกะของสิ่งนี้ (ฉันรู้ว่าการสร้างที่แน่นอนนี้เป็นไปไม่ได้):
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...