Convertendo arquivos do Windows para Linux

[ad#texto]

É comum que desenvolvedores escrevam arquivos Bash em ambiente Windows e depois enviem estes arquivos para que o mesmo seja executado no servidor, que geralmente é Linux, então eles se deparam com a seguinte mensagem de erro:

/bin/bash^M: bad interpreter: Arquivo ou diretório não encontrado

Isso ocorre porque em um ambiente Windows os caracteres de controle de um arquivo texto para quebra de linha e retorno de carro são diferentes dos utilizados pelo Linux e mesmo que o editor de texto não os exiba é certo que eles estarão lá.

Nova logo do Ubuntu
Nova logo do Ubuntu

A melhor saída então é converter o arquivo para o “padrão Linux”, para isso o mais indicado é utilizar o dos2unix, porém muitos poderão não ter esta ferramenta a disposição, então devemos então recorrer ao SED:

sed -i 's/\r//' seu_arquivo

Problema resolvido!

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.