Зачем использовать env в shebang?

19

Какова цель использования #!/usr/bin/env <sh|bash|python> shebang по сравнению с #!/bin/bash , #!/bin/sh или #!/usr/bin/python ?

    
задан Tuminoid 24.01.2013 в 09:56
источник

1 ответ

11

Некоторые люди могут использовать другой python (perl и т. д.), чем системный. /usr/bin/env python запускает версию, настроенную как текущую, возможно, делает сценарий более переносимым.

С другой стороны, по сообщениям, некоторые системы не имеют /usr/bin/env . Кроме того, вы не можете использовать #!/usr/bin/env foo x для замены #!foo x , потому что foo x будет интерпретироваться как один аргумент. Таким образом, значение подхода является спорным.

    
ответ дан choroba 24.01.2013 в 09:59
источник