[Resolvido] Erro: /bin/bash^M: bad interpreter: No such file or directory (Linux)

Utilizando seu Windows, você fez um script mágico para resolver algum problema, mas quando foi executa-lo no Linux, foi agraciado com o erro: /bin/bash^M: bad interpreter: No such file or directory. Neste posto, mostro como resolver este problema sem muito esforço.

O problema ocorre devido as diferenças no registro da quebra de linha feito pelo Windows e pelo Linux. Para resolver, vamos utilizar uma expressão regular e o comando SED:

Explicando rapidamente o que este comando faz:

  • sed: nome do programa que estamos utilizando (sed = Stream Editor);
  • -e <expressão regular>: Adiciona um comando a ser executado no script. Pode ser utilizado varias vezes, para adicionar multiplos comandos;
  • -i: Salva as alterações do arquivo. Gera um backup automatico se você fornecer uma extensão;
  • ‘s/\r$//’: Remove os caracteres de Carriage Return (\r) que estão no arquivo, deixando apenas os Line Feed (\n). O que vai resolver o problema.

 

Espero ter ajudado. 🙂

 

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in Conhecimento Técnico, Dev, Linux/Bash and tagged , , .