Во-первых, фрагмент кода выше недействителен синтаксисом Bash, выглядит как Perl. Во-вторых, параметр z на date заставляет его выводить числовой часовой пояс. +%j - номер дня. Вам нужно:
if [[ ! $(( $(date +%j) % 3 )) ]] ;then
exit
fi
Но вы все равно увидите странность в конце года:
$ for i in 364 365 1 ; do echo "Day $i, $(( $i % 3 ))"; done
Day 364, 1
Day 365, 2
Day 1, 1
Вам может быть повезло с сохранением количества в файле, и тестирование / обновление.