Какова цель использования #!/usr/bin/env <sh|bash|python>
Шебанга по сравнению с #!/bin/bash
, #!/bin/sh
или #!/usr/bin/python
?
Некоторые люди могут использовать другой питон (perl и т. Д.), Чем системный. /usr/bin/env python
будет запускать версию, настроенную как текущую, что может сделать скрипт более переносимым.
С другой стороны, по сообщениям, некоторые системы не имеют /usr/bin/env
. Кроме того, вы не можете использовать #!/usr/bin/env foo x
в качестве замены для #!foo x
, потому что foo x
будет интерпретироваться как один аргумент. Так что ценность такого подхода является дискуссионной.
#!/usr/bin/env python
#!/usr/bin/python
Первый более портативный. источник1. источник2. источник3. Я не видел Linux как системы, где бы она не работала. И это общее утверждение - /usr/bin/env
часто доступен, другие двоичные файлы располагаются в файловой системе, где им заблагорассудится.