Shebang não era para ser tão flexível . Pode haver alguns casos em que tenha um segundo parâmetro , acho que o FreeBSD é um deles.
O gawk e a maioria dos utilitários fornecidos com o sistema operacional devem estar em /usr/bin/
.
Nos dias mais antigos do UNIX, era comum ter /usr/
montado sobre NFS ou algumas mídias menos caras para economizar espaço em disco local e custo por estação de trabalho. /bin/
deveria ter tudo 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á-lo amigável o suficiente para administração geral e solução de problemas.
Isso foi herdado inicialmente no Linux, mas como 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 é mover tudo em /usr/bin
(pelo menos no mundo Linux ). Portanto, a maioria dos utilitários instalados por uma distro deve ser encontrada lá. Até mesmo os utilitários mais básicos, como cp
, rm
, ls
etc (bem, ainda não).
Em relação à escolha do shebang. Tradicionalmente, isso é algo que os administradores ou usuários precisam editar de acordo com seu ambiente. Para todos os desenvolvedores sabem, nos sistemas de outras pessoas, o interpretador pode estar em qualquer lugar no sistema de arquivos (por exemplo, /usr/local/bin
, /opt/gawk-4.0.1/bin
). Scripts apropriadamente empacotados (rpm, deb etc) vêm com uma dependência em um pacote distro (ou seja, o interpretador tem uma localização conhecida) ou um script de configuração que configura o hashbang apropriado durante a instalação.