Supondo que o script seja um script Bash (por exemplo, começa com #!/bin/bash
), então o autor está errado neste ponto. Quando você executa um script de shell diretamente, o kernel vê a linha #!/bin/bash
no início e, em seguida, executa essa linha com o nome do arquivo do script como um parâmetro, ou seja, /bin/bash myscript.sh
. Em outras palavras, o kernel está fazendo exatamente o que você faria para passá-lo para um shell explicitamente.
Agora, se o script começar com #!/bin/sh
em vez de #!/bin/bash
, haverá outra possibilidade. O Bash pode fornecer /bin/sh
, mas não é necessário. Ele também prioriza recursos acima do tamanho ou da velocidade. Se um shell menor e mais rápido for seu /bin/sh
, a execução do script diretamente usará esse shell mais rápido, e o script será executado mais rapidamente do que no Bash.
Isso acontece na prática com distribuições baseadas no Debian (por exemplo, Debian, Ubuntu, Mint). Eles tendem a usar um shell chamado dash
para fornecer /bin/sh
em vez do Bash, para tornar os scripts de inicialização mais rápidos.
Para ver o que sua distribuição faz, ls -l /bin/sh
. É provavelmente um link simbólico para /bin/bash
ou /bin/dash
ou outro shell.