Como outros aqui disseram, isso não é estritamente necessário para conformidade com o POSIX.
Mas, sem dúvida, a compatibilidade com o software existente é muito mais importante (afinal, o objetivo do POSIX é fazer com que certas coisas funcionem em todos os sistemas operacionais em conformidade) e, se um sistema operacional não fornecer sh /bin/sh
, isso quebrará algumas coisas.
Obviamente, scripts com #!/bin/sh
base nesse caminho estão sendo padronizados. Isso não é necessário para o trabalho; O POSIX nem exige que as #!
linhas sejam suportadas, embora mencione que essa funcionalidade é comum :
Outra maneira que algumas implementações históricas lidam com scripts de shell é reconhecendo os dois primeiros bytes do arquivo como a cadeia de caracteres "#!" e usando o restante da primeira linha do arquivo como o nome do interpretador de comandos a ser executado.
Mas se isso não for suportado, muitos softwares existentes serão interrompidos ou exigirão trabalho adicional para serem portados.
/bin/sh
, pois , na maioria dos casos, no linux, ele já é um link simbólico parabash
. É que muitos scripts usam/bin/sh