Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Índice:

Anonim

Essa sequência de caracteres ( #! ) É chamada shebang e é usada para informar ao sistema operacional qual intérprete usar para analisar o restante do arquivo.

Diretiva Intérprete Shebang

A diretiva intérprete Shebang assume a seguinte forma:

#!interpreter

  • A diretiva deve ser a primeira linha do script. A diretiva deve começar com shebang #! O espaço em branco após os caracteres shebang é opcional.Interpreter é o caminho completo para um arquivo binário (ex: /bin/sh , /bin/bash ).Os argumentos do interpretador são opcionais.

Exemplos:

  • #!/bin/bash - Usa o bash para analisar o arquivo. #!/usr/bin/env perl - Usa o comando env para encontrar o caminho para o executável perl . #!/usr/bin/python Executa o arquivo usando o binário python .

Usando Shebang em scripts Bash

Se um shebang não for especificado e o usuário que estiver executando o script Bash estiver usando outro Shell, o script será analisado por qualquer que seja o interpretador padrão usado por esse Shell. Por exemplo, o intérprete padrão para bash é bash e para zsh é sh . Para garantir que seu script sempre seja interpretado com o Bash, você precisará especificar o caminho do executável usando shebang.

Existem duas maneiras de usar a diretiva Shebang e definir o intérprete.

  1. Usando o caminho absoluto para o binário bash:

    #!/bin/bash

    Usando o utilitário env :

    #!/usr/bin/env bash

A vantagem de usar a segunda abordagem é que ela procurará o executável do bash na variável de ambiente $PATH do usuário. Se houver mais de um caminho para o bash , o primeiro será usado pelo script.

Ao usar a primeira opção para adicionar uma opção ao fornecimento do shell Bash, passe-a para o intérprete. Por exemplo, para executar o script no modo de depuração, você usaria #!/bin/bash -x . Se você estiver usando o método env , precisará usar set para declarar a opção. Para habilitar o modo de depuração, você adicionaria set -x após a linha shebang.

Script de exemplo

Vamos criar um script simples usando shebang que imprimirá "Olá, mundo". Abra seu editor de texto e cole a seguinte linha:

nano hello_world Olá Mundo

#!/bin/bash echo "Hello, World"

Para poder executar o script sem especificar o intérprete na linha de comando, você precisará tornar o arquivo executável:

chmod +x hello_world

Agora, se você pode executar o script digitando ./ seguido pelo nome do script:

./hello_world

Hello, World

Substituindo o Shebang

Se, por algum motivo, você quiser substituir o intérprete definido na linha Shebang, precisará executar o script especificando explicitamente o shell desejado.

Por exemplo, para executar um script que tenha #!/bin/sh especificado na linha Shebang usando o shell bash , digite:

bash hello_world

Observe que não é uma boa idéia substituir o interpretador de shell, pois isso pode levar a um comportamento inesperado do script.

Conclusão

Até agora você deve ter uma boa compreensão do que é Shebang e como usá-lo em seus scripts Bash.

terminal bash