Problema ao editar ~ / .bash_profile: -bash: $ '\ r': comando não encontrado

3

Instalei o CygWin no Windows 7. Utilizando o Bloco de Notas, editei meu arquivo ~ / .bash_profile para adicionar à variável PATH…

PATH="${PATH}:/cygdrive/c/apache-ant-1.8.2/bin"

Agora, quando eu SSH na minha máquina Windows, eu recebo este erro ...

-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: /home/dev/.bash_profile: line 39: syntax error: unexpected end of file

e meu PATH não está definido. Alguém sabe como eu posso corrigir isso?

    
por Simon Sheehan 01.09.2011 / 15:37

3 respostas

6

Como já foi mencionado, o Windows usa \n\r como separador de linha. Agora que você tem o \r s no seu .bash_profile , no entanto, você pode usar o utilitário dos2unix para removê-los.

    
por 01.09.2011 / 15:45
2

Provavelmente, o bloco de notas adicionou alguns $'\r' , i. e. CR caracteres - como é normal no Windows ter o CRLF como terminador de linha.

A solução seria usar outro editor que seja capaz de manter os finais de linha como estão, e. g. vim para Windows ou Notepad2.

    
por 01.09.2011 / 15:41
2

Dependendo do ambiente que você está usando, você pode ficar preso a scripts contendo CRLF, ou seja, ao usar o Visual SourceSafe, o Perforce for Windows etc. para armazenar seus arquivos. No entanto, o bash tem uma maneira universal de contornar este problema:

export SHELLOPTS
set -o igncr

Se você colocar isso no início do seu .bash_profile ou outro script de inicialização que você esteja usando, você está sem problemas, pois as seqüências do CRLF antes do primeiro comando no seu script de inicialização não são prejudiciais.

    
por 11.07.2012 / 16:45