O utilitário date
no macOS (que presumo que você esteja usando a julgar pela localização dos diretórios home do usuário) não é GNU date
e, portanto, não suporta todos os seus recursos.
Isso significa que a variável OLD_BACKUP
estará vazia (e você deverá ver uma mensagem de erro quando date
for executado), o que significa que é o diretório ${BACKUP_DEST[$i]}
que é excluído.
Em vez disso, você pode usar date -v -3d +'%d-%m-%Y'
.
#!/bin/bash
set -e
backup_dest=(
'/Users/christopherdavies/Desktop/rsync/test1.co.uk'
'/Users/christopherdavies/Desktop/rsync/test2.co.uk'
)
when=$( date -v -3d +'%d-%m-%Y' )
for backup in "${backup_dest[@]}"; do
[ -d "$backup/$when" ] && rm -Rf "$backup/$when"
done
Alternativamente, instale GNU coreutils e use o GNU date
.
Outras alterações feitas no seu código:
-
Removido
exit 0
do final e adicionadoset -e
. Se o script falhar, você poderá ser capaz de perceber isso. -
O array do website não foi usado.
-
Faz um loop sobre os itens na matriz, em vez de usar índices, é mais fácil de ler.
-
Se você quiser uma instrução
if
simples de linha única, poderá usar a sintaxe de curto-circuito (que é menor). -
Use nomes de variáveis em minúsculas.
-
Sempre cite expansões de variáveis.
-
É um script
bash
, portanto, deve referir-se abash
na linha#!
.