Ich suchte Google aber konnte keine Antwort auf diese eher einfache Frage finden. Ich habe einen Python-Skript, das die Hash-Bang in der ersten Zeile hat (#!):Bevorzugter Weg von #! in Shell-Skripte
#!/usr/bin/python
Was aber, wenn diese auf einem Computer mit Python in/ist/python oder/usr/local ausgeführt wird/bin/python oder ein anderer Ort? Es muss einen besseren Weg geben, den Interpreter für ein Shell-Skript zu setzen. Es sollte möglich sein, es über $ PATH zu setzen, da dieser weiß, wo Python zu finden ist, wenn es auf dem System installiert ist.
Ich wusste nicht env das tat! Dies stellt jedoch ein geringes Sicherheitsrisiko dar. Ein böswilliger Benutzer kann seinen eigenen Binärcode in ./python ablegen und Aktionen als Zielbenutzer ausführen, wenn ein Benutzer mit dem Status "." in ihrem $ PATH führt ein Python-Skript mit dieser Hash-Bang-Zeile aus. –
Suchen PATH für Ihre Binärdateien ist normal. Das Problem in Ihrem Szenario ist, dass der Benutzer "." in ihrem Pfad, nicht, dass sie die PATH-Shell-Builds verwenden, um Befehle auszuführen. –
@Phil: Im Prinzip stimme ich zu, dass das Problem mit $ PATH ist, aber in der Praxis, wenn Benutzer diesen Fehler häufig machen, ist es in gewisser Weise unverantwortlich, sie zu ignorieren. –