Se você deixá-la fora, então, o shell irá falhar quando ele tenta exec ()-lo. O que acontece a seguir depende do shell que você está usando como login shell. A maioria dos reservatórios irá assumir que o guião é escrito na sua própria língua. Portanto, se você estiver usando o bash como login shell e Korn tentar executar um script que não têm o #! / usr / bin / ksh, bash, então vai tentar executá-lo como um bash script. bash e ksh são pouco compatíveis e isto pode funcionar. Por outro lado, ela pode falhar.
Suponha que você utilize ksh como login shell e você estiver executando o Korn shell scripts sem que a primeira linha. As coisas parecem ok. Então você decide tentar bash como login shell. De repente as coisas quebrar.
E as coisas vão ser especialmente desolador para quem usa csh / tcsh como o seu login e executa shell scripts sem que a primeira linha. Estes reservatórios inspeccionar o script de tentar adivinhar se eles ou os antigos bourne shell deve executá-lo. O teste que empregam é tão ruim que ele pode ser batido por um gerador de números aleatórios. E ninguém ainda usa a velha bourne shell anyway.
E sim, é uma espécie de norma. A maior parte kernels sei sobre isso. Mas não creio que seja um funcionário
POSIX norma.