sh
Isso executa o programa chamado hello_world.sh
no caminho de pesquisa do programa (PATH) . Se esse programa começar com uma linha shebang , essa linha indica que o programa deve ser passado para um intérprete para ser executado; caso contrário, o programa deve ser carregado como código nativo. A linha shebang é lida pelo kernel. Por exemplo, se a primeira linha de hello_world.sh
for #!/bin/sh
, o kernel lançará /bin/sh
e passará hello_world.sh
como argumento.
Se hello_world.sh
não começar com um shebang nem um código nativo válido, o kernel retornará um erro quando você tentar executá-lo. Se você estiver fazendo isso a partir de um shell, o shell notará o erro e tentará executar hello_world.sh
como um script de shell (como o segundo formulário abaixo).
sh script_name.sh
Isso executa o programa chamado sh
encontrado no PATH, com script_name.sh
passado como argumento. O programa sh
, assumindo que é o shell usual, abrirá o arquivo chamado script_name.sh
no diretório atual e o interpretará. Se o script começar com uma linha shebang, será ignorado. O script não precisa ser executável.
. script_name.sh
source script_name.sh
Quando você executa isso em um shell, qualquer uma dessas instruções informa ao shell em execução para interpretar os comandos no arquivo especificado. O script não é executado como um programa separado, mas como parte do processo de shell existente. Assim, o script pode afetar o diretório atual, o ambiente,… do shell em execução. Os comandos incorporados .
e source
são sinônimos, exceto que .
procura apenas script_name.sh
no PATH, enquanto em alguns shells source
também procura no diretório atual.