Consertando o ^M em scripts shell

Publicado por Rui Ogawa em 21/05/2009

[ Hits: 17.809 ]

 


Consertando o ^M em scripts shell



Hoje fui colocar em produção um firewall e notei que ao tentar executar o script, retornava o seguinte erro:

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

O problema acontece quando um shell script é aberto com algum editor DOS. Ele insere quebras de linhas que os editores *NIX não interpretam, inserindo um ^M no fim da linha.

Como sempre, busquei ajuda primeiro aqui no VOL e encontrei algumas soluções usando o comando sed, mas dando uma pesquisada achei uma solução mais simples e funcional com o pacote tofrodos.

A solução foi apontada pelo Rubens Queiroz de Almeida, no Dicas-L e está na íntegra e muitíssimo bem explicada no link abaixo:
Outras dicas deste autor

Gráfico da evolução da popularidade das 20 distros mais utilizadas

Leitura recomendada

Script de backup + envio de e-mail

Verificando disco de backup e enviando e-mail

Novo script de autenticação para o Velox da Telemar

Excluindo arquivos por data: find + xargs + rm

Linux Omni-bot Autosetup 2011, programinha que facilita o uso do Omni-bot

  

Comentários
[1] Comentário enviado por enzo em 21/05/2009 - 16:01h

Rui

Através do editor VI também podemos fazer o seguinte:

:set fileformat=dos

ou

:set fileformat=unix

no modo de comando.

Abraço,

[2] Comentário enviado por ledubr em 21/05/2009 - 16:37h

No vi, voce pode fazer :

:%s/^M// ( digitar :%s/control-v control-m// )


[]'s

[3] Comentário enviado por rogawa em 23/05/2009 - 12:03h

Agradeço imensamente os comentários do enzo e ledubr. Não é sempre que temos liberdade pra instalar o pacote tofrodos, então realmente nada melhor que saber utilizar os recursos nativos. Valeu!



Contribuir com comentário