Зачем использовать env в Шебанге?

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

19
задан 30 January 2013 в 01:33

2 ответа

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

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

0
ответ дан 30 January 2013 в 01:33
#!/usr/bin/env python
#!/usr/bin/python

Первый более портативный. источник1. источник2. источник3. Я не видел Linux как системы, где бы она не работала. И это общее утверждение - /usr/bin/env часто доступен, другие двоичные файлы располагаются в файловой системе, где им заблагорассудится.

0
ответ дан 12 September 2020 в 05:05

Другие вопросы по тегам:

Похожие вопросы: