Shebang não era para ser tão flexível . Pode haver alguns casos em que ter um segundo parâmetro funcione , acho que o FreeBSD é um deles.
espera-se que o gawk e a maioria dos utilitários que acompanham o sistema operacional /usr/bin/
.
Nos dias anteriores do UNIX, era comum /usr/
montar sobre NFS ou alguma mídia mais barata para economizar espaço em disco local e custo por estação de trabalho. /bin/
deveria ter tudo o necessário para inicializar no modo de usuário único . Como /usr/
não foi montado em uma mídia confiável, /bin/
incluiu utilitários suficientes para torná-la amigável o suficiente para administração geral e solução de problemas.
Isso foi herdado no Linux inicialmente, mas como o espaço em disco não é mais um problema e, na maioria dos casos, /usr/
está no sistema de arquivos raiz, a tendência atual é mudar tudo /usr/bin
(pelo menos no mundo do Linux). Portanto, a maioria dos utilitários instalados por uma distro deve ser encontrada lá. Mesmo o mais serviços básicos, como cp
, rm
, ls
etc (assim, ainda não).
Em relação à escolha shebang. Tradicionalmente, isso é algo que os administradores ou usuários precisam editar de acordo com o ambiente. Pelo que todo desenvolvedor sabe, nos sistemas de outras pessoas, o intérprete pode estar em qualquer lugar do sistema de arquivos (por exemplo /usr/local/bin
, /opt/gawk-4.0.1/bin
). Os scripts empacotados corretamente (rpm, deb etc) vêm com uma dependência de um pacote de distribuição (por exemplo, o intérprete tem um local conhecido) ou um script de configuração que configura o hashbang apropriado durante a instalação.
-f
? Não é/bin/gawk
suficiente? Além disso, isso pode ser relevante.