Во-первых, вам нужны даты в форме, в которой вы можете выполнить арифметику:
todaysdate_seconds=$(date +%s --date "$todaysdate") # assuming GNU date
gp_seconds=$((graceperiod_days * 86400))
enddate_seconds=$(date +%s --date "$enddate_formatted")
Во-вторых, в вашем операторе if
отсутствует команда, состояние выхода которой она может проверить. Все, что у вас есть, это аргументы такой команды. Вместо этого используйте
if test "$todaysdate_seconds" -ge "$("$enddate_seconds" - "$gp_seconds")"; then
или более простая bash
арифметическая команда
if (( todaysdate_seconds >= enddate_seconds - gp_seconds )); then