Czy istnieje sposób na dynamiczne wybranie interpretera wykonującego skrypt? Mam skrypt, który uruchamiam na dwóch różnych systemach, a tłumacz, którego chcę użyć, znajduje się w różnych lokalizacjach na dwóch systemach. Ostatecznie muszę zmienić linię hashbang za każdym razem, gdy się przełączam. Chciałbym zrobić coś, co jest logicznym odpowiednikiem tego (zdaję sobie sprawę, że ta dokładna konstrukcja jest niemożliwa):
if running on system A:
#!/path/to/python/on/systemA
elif running on system B:
#!/path/on/systemB
#Rest of script goes here
Lub jeszcze lepiej byłoby, gdyby próbował użyć pierwszego tłumacza, a jeśli go nie znajdzie, użyje drugiego:
try:
#!/path/to/python/on/systemA
except:
#!path/on/systemB
#Rest of script goes here
Oczywiście mogę zamiast tego wykonać go jako
/path/to/python/on/systemA myscript.py
lub w
/path/on/systemB myscript.py
zależności od tego, gdzie jestem, ale tak naprawdę mam skrypt, który się uruchamia myscript.py
, więc chciałbym określić ścieżkę do interpretera Pythona programowo, a nie ręcznie.
if
warunku nie jest dla ciebie opcją? jak,if something; then /bin/sh restofscript.sh elif...