remind() { [[ $# -ge 2 ]] || { echo >&2 "Usage: $FUNCNAME time msg"; return 1; } local sec="$(($1*60))" ( trap "echo \"\$sec seconds left\"" QUIT while ((--sec > 0)); do sleep 1; done say "${@:2}" # OS X only, replace with your favorite notifier ) 2>/dev/null & } $ remind 30 get the laundry
( sleep 1800 ; say "get the laundry" )&
remind [minutes] [message]
Favorite notifier:
echo "${@:2}" | growlnotify -t Reminder -s -m -