Есть ли способ динамически выбрать интерпретатор, который выполняет сценарий? У меня есть скрипт, который я запускаю на двух разных системах, и интерпретатор, который я хочу использовать, находится в разных местах на двух системах. В конечном итоге мне приходится менять строку 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
, поэтому я хотел бы указать путь к интерпретатору python программно, а не вручную.
if
условия не вариант для вас? как,if something; then /bin/sh restofscript.sh elif...