Acho que um script melhor seria ler a entrada da linha de comando - algo como:
#/bin/bash
echo "Shall back up as - press Ctrl-C to exit if this is not what you want"
sleep 3
echo "Backing Up..."
tar -cvpzf .tar.gz
echo "Backing up of Complete"
notify-send -t 8000 "Backing up of complete"
exit
Você pode então digitar o comando assim:
COMMAND "/path/to/input" "/path/to/output"
O notify-send
também enviará uma notificação gráfica para que você seja notificado quando isso for feito.
Esta é apenas a minha sugestão - vou dar uma olhada na sua em um segundo ...
O problema com o seu script é este. Ele será bem-sucedido, como $CONT1
= y
, portanto, executará o comando backup tar...
e, em seguida, echo Success
. Só será repetido se você digitar o parâmetro continue não como y
. Então, para este script em particular, um melhor final para isso seria (isso só muda o que é echo
ed na saída do terminal) :
if [ "$CONT1" == "y" ]; then
tar -cvpzf "$after.tar.gz" "$back"
echo "Backing up File finished!" ;
else
echo "Did not backup" ;
fi
exit
Isso parece funcionar:
#!/bin/bash
echo ""
echo "Which File you want to backup?";
read input
echo "Where do you you want it to be backed up? (include .tar.gz extension)";
read output
read -p "Continue (y/n)? " CONT
if [ "$CONT" == "y" ]; then
tar -cpf "$input" "$output" || 'echo "Backing Up Failed" && exit;'
echo "Backing Up Successful!"
else
echo "Did not backup" ;
fi
exit
O ||
após o comando significa que ele só executará 'echo "Backing Up Failed" && exit;'
se o comando produzir erros, o que fará com que ele repita que ele falhou e, em seguida, sairá. Se o comando não produzir erros, ele irá ignorar isso, ecoar com sucesso e sair.
Isso pode ter problemas com o caminho de alguns arquivos, então você pode querer usar o outro script que eu sugeri ...
Espero que isso ajude.