#!/bin/sh case $0 in *"timer"*) [ $# -ne 2 ] && printf "specify minutes and \ seconds\n" && exit 1 sleep $(($1 * 60 + $2)) printf "your timer is done\a\n" exit 0 ;; *"alarm"*) [ $# -ne 1 ] && printf "specify time\n" && exit 1 ttw=$(($(date +%s --date="$1 tomorrow") - $(date +%s))) sleep $ttw printf "your alarm is done\a\n" exit 0 ;; *"tomato"*) [ $# -ne 2 ] && \ printf "specify work and rest time\n" && exit 1 counter=0 while true; do printf "start work cycle %s\a\n" $(($counter + 1)) sleep $(($1 * 60)) printf "start rest cycle %s\a\n" $(($counter + 1)) sleep $(($2 * 60)) counter=$(($counter + 1)) done exit 0 ;; *"stopwatch"*) now=$(date +%s) read var printf "%s\n" $(($(date +%s) - $now)) exit 0 ;; *"verbosewatch"*) min=59 sec=55 while true; do printf "%02d:%02d\r" $min $sec sleep 1 sec=$(($sec + 1)) [ $sec -eq 60 ] && min=$(($min + 1)) && sec=0 done exit 0 ;; *) printf "unknown invocation\n" exit 2 ;; esac