O shebang nunca faz com que um processo se bifurque. Ele não faz nada a menos que o script seja executável e seja invocado de tal modo que faça com que o sistema avalie o shebang para ver qual programa / shell executar o script com.
Se, por exemplo, você já estava executando o bash e executou o script com o comando source
, o script seria executado dentro do shell em execução no momento, e o exit
afetaria esse shell processo, em vez de ser um novo processo shell que foi finalizado.
Se você tiver um arquivo de script que deseja executar, torne-o executável com o seguinte comando:
chmod +x script
Em seguida, se você quiser executar o script e assumirmos que o arquivo de script está no diretório atual, use o seguinte comando:
./script
Note que isso é muito diferente de . script
, que é apenas uma notação abreviada para source script
.
O ./script
é um nome de caminho relativo para o arquivo de script, o que significa pesquisar no diretório atual para localizar o script 'script' e executá-lo - o que funciona somente se o arquivo de script for executável.
Se você tiver um arquivo de script que NÃO é executável, invoque-o com:
bash script
Mas, neste caso, você está especificando qual shell será executado e a linha shebang será ignorada.