As variáveis da shell não estão funcionando?

1

Estou tentando armazenar a data em uma variável ( $DATE ) para poder usá-la mais tarde, mas parece que não funciona. Vê alguma coisa errada?

DATE=$(date +"%Y-%m-%d %R")
sudo mysqldump -u root -pnotgivingyoumypassword --all-databases > ~/mysql_backups/$DATE.sql
cd /var/www && sudo tar -czf ~/www_backups/$DATE.tar ./

Atualizar A mensagem de erro é:

get:tar: 20\:41.tar: Cannot stat: No such file or directory tar: Exiting with failure status due to previous errors

Parece funcionar para o mysql dump, mas falha ao usá-lo no último comando.

    
por qwerty 02.09.2012 / 20:28

1 resposta

4

Você precisa citar sua expansão de $DATE , ele está passando por wordsplit e, portanto, tar está sendo passado em dois argumentos, em vez de um quando $DATE foi expandido (e o mesmo para o redirecionamento). Aqui está uma versão fixa (com $DATE alterado para $date ; por convenção, somente as variáveis de ambiente devem estar em maiúsculas):

date=$(date +"%Y-%m-%d %R")
sudo mysqldump -u root -pnotgivingyoumypassword --all-databases > ~/mysql_backups/"$date.sql"
cd /var/www && sudo tar -czf ~/www_backups/"$date.tar" ./

Veja o link .

    
por 02.09.2012 / 21:05