Gibt es eine Möglichkeit, den Interpreter, der ein Skript ausführt, dynamisch auszuwählen? Ich habe ein Skript, das auf zwei verschiedenen Systemen ausgeführt wird, und der Interpreter, den ich verwenden möchte, befindet sich an verschiedenen Orten auf den beiden Systemen. Am Ende muss ich die Hashbang-Linie jedes Mal ändern, wenn ich umschalte. Ich möchte etwas tun, das dem logisch entspricht (mir ist klar, dass dieses genaue Konstrukt unmöglich ist):
if running on system A:
#!/path/to/python/on/systemA
elif running on system B:
#!/path/on/systemB
#Rest of script goes here
Oder noch besser wäre dies, damit es versucht, den ersten Interpreter zu verwenden, und wenn es den zweiten nicht findet:
try:
#!/path/to/python/on/systemA
except:
#!path/on/systemB
#Rest of script goes here
Offensichtlich kann ich stattdessen führen Sie es als
/path/to/python/on/systemA myscript.py
oder
/path/on/systemB myscript.py
je nachdem , wo ich bin, aber ich habe tatsächlich einen Wrapper - Skript , das gestartet wird myscript.py
, so würde Ich mag den Pfad zum Python - Interpreter spezifizieren programmatisch eher als von Hand.
if
Bedingung zu verwenden, ist für Sie keine Option? like,if something; then /bin/sh restofscript.sh elif...