Use o vi para converter o script Perl, digamos perl_script.pl
, para o formato de arquivo do UNIX ( :set ff=unix
) da seguinte forma:
vi perl_script.pl
Agora, em vi
, altere o formato do arquivo para UNIX, salve o arquivo e, em seguida, saia, como em:
:set ff=unix
:wq
Agora, execute seu script como antes.
O problema é mais provável que o arquivo tenha sido criado ou tenha sido convertido em algum outro formato diferente do formato UNIX, talvez o DOS ( :set ff=dos
in vi
).
Parece que, pelo menos na minha instalação do Ubuntu Linux 12.04 LRS, as ferramentas antigas, dos2unix
e unix2dos
não são instaladas por padrão. Isto teria sido o que eu teria sugerido se eles estivessem prontamente disponíveis - daí o hack acima para você ir. Como eles não estão disponíveis no momento, aqui está uma maneira simples de recuperá-los:
$ sudo apt-get install tofrodos
$ sudo ln -s /usr/bin/fromdos /usr/bin/dos2unix
$ sudo ln -s /usr/bin/todos /usr/bin/unix2dos
Agora, para ver como usar dos2unix
, execute man fromdos
e veja como usar unix2dos
, execute man todos
.
Adicione o seguinte a um de seus arquivos de inicialização do shell para codificar seu próprio dos2unx
e unix2dos
, ou seja, seu arquivo .bashrc
:
dos2unix(){
tr -d '\r' < "$1" > t
mv -f t "$1"
}
dos2unix file
unix2dos(){
sed -i 's/$/\r/' "$1"
}
unix2dos file
Como era mais fácil fazer a última codificação, foi o que fiz para o meu servidor OSX, em vez de descobrir qual pacote encontrar e portar para o OSX.