#!/usr/bin/env bash parse_time() { local input="${1,}" if [[ $input =~ ^([0-9]+)(m|min|mins|minute|minutes)$ ]]; then echo "now + ${BASH_REMATCH[1]} minutes" elif [[ $input =~ ^([0-9]+)(h|hr|hrs|hour|hours)$ ]]; then echo "now + ${BASH_REMATCH[1]} hours" elif [[ $input =~ ^([0-9]+)(d|day|days)$ ]]; then echo "now + ${BASH_REMATCH[1]} days" elif [[ $input =~ ^([0-9]+)(w|wk|wks|week|weeks)$ ]]; then echo "now + ${BASH_REMATCH[1]} weeks" elif [[ $input =~ ^([0-9]+)(mo|month|months)$ ]]; then echo "now + ${BASH_REMATCH[1]} months" elif [[ $input =~ ^([0-9]+)(y|yr|yrs|year|years)$ ]]; then echo "now + ${BASH_REMATCH[1]} years" else echo "$input" fi } AT_TIME=$(parse_time "$2") at "$AT_TIME" <