Por que usar env em shebang?

19

Qual é a finalidade de usar #!/usr/bin/env <sh|bash|python> shebang em comparação com #!/bin/bash , #!/bin/sh ou #!/usr/bin/python ?

    
por Tuminoid 24.01.2013 / 09:56

1 resposta

11

Algumas pessoas podem usar um python (perl, etc.) diferente do sistema. /usr/bin/env python executaria a versão configurada como a atual, possivelmente tornando o script mais portátil.

Por outro lado, supostamente, alguns sistemas não possuem /usr/bin/env . Além disso, você não pode usar #!/usr/bin/env foo x como um substituto para #!foo x , porque foo x será interpretado como um único argumento. Então, o valor da abordagem é discutível.

    
por choroba 24.01.2013 / 09:59