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 pythonsich 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 pythonim aktuellen Verzeichnis eine ausführbare Datei befindet, wenn das Skript ausgeführt wird. Nicht empfohlen.