#!/usr/bin/zsh # uncomment to debug # set -x # BIKE_DELIVERY_DATE='24 aug 2006' _message () { echo "Your bike $3 service is due." echo "Get done between " `date --date="$1" '+%d %B %Y'` \ " and " `date --date="$2" '+%d %B %Y.'` exit 0 } service () { sdate1=`date --date="$BIKE_DELIVERY_DATE $1 days" ` #--rfc-3339='date'` sdate2=`date --date="$BIKE_DELIVERY_DATE $2 days" ` #--rfc-3339='date'` if [[ "`date`" < "$sdate2" ]] then _message $sdate1 $sdate2 $3 fi } # if asked for delivery date with option -d, print it and return while getopts d opt; do case $opt in d) print $BIKE_DELIVERY_DATE return; ;; esac done # service 30 45 "first" # service 75 90 "second" # service 165 180 "third" # service 255 270 "fourth" # service 350 365 "fifth" service 435 450 "sixth"