This is a simple skeleton of a bash countdown script. The script takes two arguments . Here are some examples of its usage:

  • countdown time to 90 minutes from now:
./bash-countdown.sh -m 90
  • countdown time to 23.3.2036 from now:
./bash-countdown.sh -d "Mar 23 2036"
  • countdown time to 21:06 from now:
./bash-countdown.sh -d 21:06
  • countdown time to 21:06:45 from now:
./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

Free Linux eBooks

Linux Technical Writer

LinuxCareer, Casual, Volunteer, Home Based

Do you wish to join Linuxcareer.com project and find out how to be a technical writer? We are now looking for volunteers to help us write tutorials and share them with Linux community

  • Casual work from home
  • 10 articles / year

Any active Linuxcareer.com’s author will be entitled to following benefits:

  • actively participate in Linuxcareer.com’s decision making process
  • feedback and help

APPLY

Do you have the right skills?

Our IT Skills Watch page reflects an up to date IT skills demand leaning towards the Linux and Unix environment. We have considered a number of skills and operating systems.

See the result...

Linux Online Training

Learn to run Linux servers and prepare for LPI certification with Linux Academy. 104 available video lessons with PDF course notes with your own server!

Go to top