erro de sintaxe: final inesperado do arquivo [fechado]

0
#!/bin/sh
if [ -e $1 ] ; then 
mv $1 $1_$(date +%Y%m%d%H%M) 
fi
exit 0

Eu requisito é procurar por um arquivo e se o arquivo sair, em seguida, renomeie o arquivo e saia do prog, precisamos renomear apenas se o arquivo sair

estou recebendo o erro mencionado acima

    
por user157153 18.02.2016 / 18:43

1 resposta

3

De um modo geral, as variáveis bash devem sempre ser agrupadas entre aspas duplas.

Por exemplo, digamos $ 1 é My File.txt . Seu script tenta fazer isso:

mv My File.txt My File.txt_201501010101

qual mv significa que você deseja mover os arquivos My , File.txt e My coletivamente para o destino File.txt_201501010101 .

O que você quer é:

mv "My File.txt" "My File.txt_201501010101"

Veja o seguinte para mais detalhes e outras armadilhas para evitar: link

P.S. exit 0 no final de um script é redundante. Se o script terminar sem erros, o status de saída será implicitamente 0.

    
por 18.02.2016 / 19:49

Tags