Existe alguma maneira de escolher dinamicamente o intérprete que está executando um script? Eu tenho um script que estou executando em dois sistemas diferentes, e o intérprete que eu quero usar está localizado em locais diferentes nos dois sistemas. O que eu preciso fazer é mudar a linha de hashbang toda vez que mudar. Eu gostaria de fazer algo que seja o equivalente lógico disso (eu percebo que essa construção exata é impossível):
if running on system A:
#!/path/to/python/on/systemA
elif running on system B:
#!/path/on/systemB
#Rest of script goes here
Ou melhor ainda, é isso, para tentar usar o primeiro intérprete e, se não encontrar, usa o segundo:
try:
#!/path/to/python/on/systemA
except:
#!path/on/systemB
#Rest of script goes here
Obviamente, posso executá-lo como
/path/to/python/on/systemA myscript.py
ou
/path/on/systemB myscript.py
dependendo de onde estou, mas na verdade tenho um script de wrapper que é iniciado myscript.py
, portanto, gostaria de especificar o caminho para o interpretador python de forma programática e não manualmente.
if
condição não é uma opção para você?if something; then /bin/sh restofscript.sh elif...