Consertando o ^M em scripts shell

Publicado por Rui Ogawa em 21/05/2009

[ Hits: 23.500 ]

 


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

Excluindo arquivos por data: find + xargs + rm

IP em modo texto (modem router)

Contador de Palavras no Terminal

Base de dados mais organizada em shell script

Reparar - Recuperação de sistemas baseados em Debian

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts