paulo1205
(usa Ubuntu)
Enviado em 03/11/2018 - 01:31h
Não parece haver erros de sintaxe, pelo menos na transcrição que você fez aqui.
Que mensagem de erro você está recebendo?
Como teste de sanidade: você por acaso editou o script no Windows, antes de o copiar para o Linux? Um erro relativamente comum em alguns scripts é ter linhas que usam a convenção de fim-de-linha do Windows, que usa o par de caracteres de controle CR+LF (códigos 13 e 10 do ASCII), ao passo que o mundo Unix utiliza apenas o caráter LF. Em muitos contextos, esse CR a mais no final da linha provoca erros diversos (geralmente referentes a nomes de arquivos não encontrados ou parâmetros com valor inválido), mas o diagnóstico de tais erros é dificultado pelo fato de que tal caráter de controle é invisível para muitas ferramentas, e muitos editores de texto (inclusive o
vim), ao se depararem com um arquivo produzido com a convenção de usar CR+LF, seguem a mesma convenção ao longo de todas as modificações que você vier a fazer no arquivo, sem deixar clara na tela a presença desse par de bytes.
------------------
EDIT (01:54):
Na verdade, o
vim e alguns outros editores preservam as convenções percebidas no início da edição (sendo três das convenções mais comuns a do UNIX (apenas LF), do DOS/Windows (CR+LF) e da Apple (apenas CR)), a não ser que o usuário solicite a troca da convenção. O
vim avisa se a convenção do arquivo for diferente do padrão do sistema no momento em que o arquivo é carregado e a cada vez que ele é salvo. Contudo, tal aviso é muito discreto (o texto “
[dos]” seja exibido ao lado do nome do arquivo no carregamento e cada salvamento), e some durante operações normais de edição do arquivo.
Formas de alterar a convenção de terminação de linha do arquivo incluem os utilitários
dos2unix e
unix2dos, e também podem ser feitas com os comandos
tr,
sed e outros).