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 0do 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
ifsimples 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 abashna linha#!.