Recentemente notei que muitos scripts estão usando /usr/bin/env
em seu shebang . Eu vi isso principalmente usando Bash e Python , mas até agora nunca em conjunto com POSIX sh
( ash
, dash
,...).
Eu me pergunto por que, e se meus scripts de shell POSIX , destinados a serem altamente portáteis, podem se beneficiar da env
abordagem?
Existe um consenso geral sobre se usar:
padrão:
#!/bin/sh
meio Ambiente:
#!/usr/bin/env sh
Deixe-me enfatizar isso o suficiente:
Nunca vi isso com sh
.
A configuração para
#!/bin/sh
irá diretamente para esse arquivo/bin/sh
.Definir como
#!/usr/bin/env sh
será executado/usr/bin/env
com um argumento desh
. Isso fará com que o script seja executadosh
em suaPATH
variável em vez de explicitamente com/bin/sh
.