Erstens, jedes Mal, wenn Sie ein Skript explizit mit dem Interpreter ausführen, wie in
$ python ./my_script.py
$ ksh ~/bin/redouble.sh
$ lua5.1 /usr/local/bin/osbf3
Die #!
Zeile wird immer ignoriert. Die #!
Zeile ist eine Unix-Funktion nur für ausführbare Skripts und kann auf der Manpage fürexecve(2)
vollständig dokumentiert werden . Dort finden Sie, dass das folgende Wort #!
der Pfadname einer gültigen ausführbaren Datei sein muss. Damit
führt alles aus, was python
sich auf den Benutzern befindet $PATH
. Dieses Formular ist unempfindlich gegen das Verschieben des Python-Interpreters, wodurch es etwas portabler wird. Es bedeutet jedoch auch, dass der Benutzer den Standard-Python-Interpreter überschreiben kann, indem er etwas vor sich einfügt $PATH
. Abhängig von Ihren Zielen kann dieses Verhalten in Ordnung sein oder auch nicht.
Nächster,
befasst sich mit dem allgemeinen Fall, in dem ein Python-Interpreter installiert ist /usr/bin
. Wenn es woanders installiert ist, verlieren Sie. Dies ist jedoch eine gute Möglichkeit, um sicherzustellen, dass Sie genau die gewünschte Version oder gar nichts erhalten ("Fail-Stop" -Verhalten), wie in
Schließlich,
funktioniert nur, wenn sich python
im aktuellen Verzeichnis eine ausführbare Datei befindet, wenn das Skript ausgeführt wird. Nicht empfohlen.