Digamos que você tenha o arquivo myscript
contendo o seguinte:
#!/bin/bash
echo "Hello, World!"
Se você tornar este arquivo executável e executá-lo com ./myscript
, o kernel verá que os dois primeiros bytes são #!
, o que significa que é um arquivo de script. O kernel usará o resto da linha como o interpretador e passará o arquivo como seu primeiro argumento. Então, é executado:
/bin/bash myscript
e o bash lê o arquivo e executa os comandos que ele contém.
Assim, para o bash (ou qualquer intérprete que seu script exija) para "executar" o script, ele só precisa ser capaz de ler o arquivo.
Assim, para scripts, o bit de execução apenas torna um pouco mais conveniente executá-lo. Enquanto o bash é executável, você sempre pode executar o bash com o arquivo de script como argumento, ou executar bash interativamente e copiar e colar o script linha por linha em seu terminal para que os comandos sejam executados.