Ho cercato su google ma non sono riuscito a trovare una risposta a questa domanda piuttosto semplice. Ho uno script python che ha l'hash-bang sulla prima riga (#!):modo preferito di #! negli script di shell
#!/usr/bin/python
Tuttavia, se questo viene eseguito su un computer con Python in/bin/python o/usr/local/bin/python o qualche altro posto? Deve esserci un modo migliore per impostare l'interprete per uno script di shell. Dovrebbe essere possibile impostarlo tramite $ PATH, in quanto saprà dove trovare python se è installato sul sistema.
Non sapevo che l'ENV l'avesse fatto! Ma questo è un piccolo rischio per la sicurezza: un utente malintenzionato può inserire il proprio codice binario in ./python ed eseguire azioni come utente di destinazione ogni volta che un utente ha "." nel loro $ PATH esegue uno script Python con questa linea hash-bang. –
La ricerca di PATH per i file binari è normale. Il problema nel tuo scenario è che l'utente ha "." nel loro percorso, non che stanno usando il PATH built-in della shell per eseguire i comandi. –
@Phil: In linea di principio sono d'accordo che il problema è con $ PATH, ma in pratica, se gli utenti fanno comunemente questo errore, è in qualche modo irresponsabile ignorarlo. –