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:
sed -i -e 's/\r$//' meu_script.sh
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.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022