[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] bash - unexpected end of file
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] bash - unexpected end of file |
Date: |
Fri, 31 Aug 2007 10:45:42 -0300 |
bom, voltando ao shell
a estrutura while ... done que vc escreveu está correta. a unica forma
do shell não compreender o done seria se ele estivesse lendo outra
coisa como done1, dones, done_ ou done\r
entretanto eu fico preocupado com o fato do \r não ter atrapalhado o
hashbang #!/bin/bash -- deveria ser lido como /bin/bash\r e isso
causaria um "bad interpreter" [ a menos que vc executou o script
fazendo bash script.sh e não ./script.sh ]. por isso te sugeri que
fizesse um cat -A arquivo , se o done tiver algum caracter diferente
grudado como um ^M (que simboliza o \r) o seu problema está ai, caso
contrario é outro problema.
O bad interpreter eu ja abordei aqui:
http://peczenyj.blogspot.com/2007/07/resolvendo-problemas-comuns-2-bad.html
Bueno, quatro coisas podem atrapalhar quando vc passa um arquivo texto
do windows pro unix:
- final de linha \r\n ( 99% dos casos )
- encoding diferente (parece texto puro, mas é um UTF-8 ou algo mais exótico)
- ftp de arquivo no modo bin (ja vi acontecer, por incrivel que pareça)
- sem falar na lei de murphy :)
se o problema não estiver nos caracteres ( \r ) nem na codificação (
eu uso sempre ASCII purinho da silva ) então o seu while é pouco
'robusto'. O fato é que a variavel answer possui um \r no final do seu
valor (mensagem de debug : y\r ) e isso é indicio do problema com nova
linha do windows. Enfim, verifique com o cat -A ;-)
[off]
Não conheço o EditPlus tão bem. Eu uso o Scite no Windows e ele tem
uma opção para salvar com final de linha do unix, veja se existe
recurso semelhante. No Cygwin eu uso o Vi -- basta se acostumar. [
veja também: http://www.aurelio.net/cygwin/ ]
[/off]
On 8/31/07, Mÿffffe4rcio Borges <address@hidden> wrote:
> Outra pergunta Tiago, no Cygwin qual o Editor ? Estou rodando no script no
> XP, tenho instalado o Cygwin.
>
> grato
--
Tiago B Peczenyj
Linux User #405772
http://peczenyj.blogspot.com/