This is a simple skeleton of a bash countdown script. The script takes two arguments . Here are some examples of its usage:
./bash-countdown.sh -m 90
./bash-countdown.sh -d "Mar 23 2036"
./bash-countdown.sh -d 21:06
./bash-countdown.sh -d 21:06:45
Feel free to modify this script according to your needs:
bash-countdown.sh :
#!/bin/bash if ["$#" -lt "2" ] ; then echo"Incorrect usage ! Example:" echo'./countdown.sh -d "Jun 10 2011 16:06"' echo'or' echo'./countdown.sh -m 90' exit 1 fi now=`date +%s` if ["$1" = "-d" ] ; then until=`date -d "$2" +%s` sec_rem=`expr$until - $now` echo"-d" if [$sec_rem -lt 1 ]; then echo"$2 is already history !" fi fi if ["$1" = "-m" ] ; then until=`expr 60 \*$2` until=`expr$until + $now` sec_rem=`expr$until - $now` echo"-m" if [$sec_rem -lt 1 ]; then echo"$2 is already history !" fi fi while [$sec_rem -gt 0 ]; do clear date letsec_rem=$sec_rem-1 interval=$sec_rem seconds=`expr$interval % 60` interval=`expr$interval - $seconds` minutes=`expr$interval % 3600 / 60` interval=`expr$interval - $minutes` hours=`expr$interval % 86400 / 3600` interval=`expr$interval - $hours` days=`expr$interval % 604800 / 86400` interval=`expr$interval - $hours` weeks=`expr$interval / 604800` echo"----------------------------" echo"Seconds: "$seconds echo"Minutes: "$minutes echo"Hours: "$hours echo"Days: "$days echo"Weeks: "$weeks sleep 1 done
Do not forget to make bash-countdown.sh script executable before execution:
$ chmod +x bash-countdown.sh
Exectute:
./bash-countdown.sh -d 22:34
Output:
Fri Jun 11 20:55:19 EST 2010 ---------------------------- Seconds: 40 Minutes: 38 Hours: 1 Days: 0 Weeks: 0