Uma shebang só é realmente um shebang se o script for executável e "#!" são os dois primeiros caracteres do arquivo.
O sistema operacional está literalmente procurando no arquivo a verificação dos dois primeiros bytes e vendo que eles são (em hexadecimal) "23" e "21", que são os códigos ASCII para "#" e "!".
Se eles aparecerem mais tarde no arquivo, ou se você não estiver executando o arquivo diretamente, a linha será realmente tratada como um comentário porque começa com #.
De fato, se a linha for:
#!/bin/sh
, o SO encontra a shebang e, portanto, é executado:
/bin/sh [filename]
e /bin/sh
ignoram a linha shebang como comentário ao executar o script.
Quando se trata de outros idiomas que não usam #
como um comentário, um sinalizador especial é frequentemente passado para o intérprete para que ele saiba ignorar a primeira linha (por exemplo, #!/usr/local/bin/tcc -run
).