Executando o arquivo bash com Erro bin / bash: mau intérprete: arquivo ou diretório não existe

Sou muito novo no bash e tento escrever o primeiro script chamado hello_world no caminho de /Users/me/Study/Linux com o conteúdo escrito por vim:

#! bin/bash echo Hello World 

No entanto, o erro ocorre quando executado:

-bash: /Users/me/Study/Linux/hello_world: bin/bash: bad interpreter: No such file or directory 

Eu li muitas perguntas sobre o problema, mas ainda me sinto totalmente perdido. 🙁 Serei muito grato por sua ajuda.

Comentários

  • tente #! /bin/bash para o primeira linha
  • @TedWrigley Thx, isso funciona; mas por quê?
  • O shebang (#!) leva um caminho para um executável, e em Unix / linux, os caminhos têm que começar com uma barra.

Resposta

A primeira linha de seu script bash deve ser semelhante a esta.

#!/bin/bash 

Isso é chamado de “linha shebang” porque os primeiros dois caracteres #! são shebang . A linha shebang informa ao computador qual programa executável deve ser usado para interpretar o resto do script. Neste caso, você está escrevendo um script bash, mas poderia facilmente estar escrevendo um script para python ou awk, e você precisa informar ao sistema qual interpretador usar com base na linguagem em que o script está escrito.

O motivo de sua linha shebang #! bin/bash não funciona é b porque você não forneceu um caminho válido (normalmente, um caminho absoluto ) para o interpretador. Se você omitir a barra inicial /, o shell procura bin no diretório de trabalho atual, mas não o encontra.

Como você está começando a aprender o bash, sugiro a leitura de um livro. Isso evitará que você tenha que fazer muitas perguntas. Aprender o bash Shell, 3ª edição de Cameron Newham é muito bom.

Comentários

  • Observe que o espaço após #! não é importante – #!/bin/bash e #! /bin/bash ambos trabalhar e #!bin/bash ou #! bin/bash só funcionará se você cd / primeiro (então bin for encontrado ) De seu link da Wikipedia " Em branco depois! estão OK "

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *