simple alarm clock with bash scripting

here is a simple bash programming that will execute alarm when it reach certain time setup by user

initially i coded just for exercise on bash scripting (practice make perfect right?) but i think it’s a good idea to share it with other people

here’s the code
#!/bin/bash
masa="`date +%k:%M`"
mp3="$HOME/Desktop/alarm.mp3" #change this


if [ $# != 1 ]; then
echo “please insert alarm time [24hours format]”
echo “example ./alarm 13:00 [will ring alarm at 1:00pm]”
exit;
fi
alarm=$1
if [[ "$alarm" =~ ^[0-2][0-9]\:[0-5][0-9]$ ]]
#fix me with better regex >_<
then
echo “time now $masa”
echo “alarm set to $alarm”
echo “will play $mp3″
else
echo “invalid clock format”
exit;
fi


while [ $masa != $alarm ];do
masa=”`date +%k:%M`” #update time
done
echo $masa
if [ $masa = $alarm ];then
echo ringggggggg
play $mp3 > /dev/null 2> /dev/null &
fi
exit

if you have any suggestion/comment to improve this code please tell me :D

thanks

view proper script alarm bash script

note : you will need sox to use “play” command, debian/ubuntu user can install it by sudo apt-get install sox

6 Comments

  1. Posted January 17, 2008 at 2:31 pm | Permalink

    Maria Ozawa mesti tax boleh tinggal nyer.. wakakaka

  2. Skully
    Posted March 16, 2008 at 5:53 pm | Permalink

    Hi! I’ve found a mistake.
    Istead of this line:
    ifs [[ "$alarm" =~ ^[0-2][0-9]\:[0-5][0-9]$ ]]
    writhe this:
    if [[ "$alarm" =~ ^[1-2]?[0-9]\:[0-5][0-9]$ ]]

    The timeformat is not 09:00. Tts 9:00
    Sorry for my bad english.

  3. Skully
    Posted March 16, 2008 at 5:55 pm | Permalink

    Hi! I’ve found a mistake.
    Istead of this line:
    ifs [[ "$alarm" =~ ^[0-2][0-9]\:[0-5][0-9]$ ]]
    writhe this:
    if [[ "$alarm" =~ ^[1-2]?[0-9]\:[0-5][0-9]$ ]]

    The timeformat is not 09:00. Its 9:00
    Sorry for my bad english.

  4. novatech
    Posted March 16, 2008 at 10:25 pm | Permalink

    thnx for that fix [thumb], but i think the for format should be [0-2] since it’s 00:00 when 12a.m but i wont effect much i believe nobody will set alarm for 12:00 am

  5. Skully
    Posted March 18, 2008 at 4:25 pm | Permalink

    ive tested with 12 am.
    http://tefeo.extra.hu/content/picture.png
    the picture is very talkative.

  6. TippiX
    Posted July 6, 2008 at 9:24 pm | Permalink

    Nice script - just what I am looking for :)
    But 100% cpu is not fine. Better to write:

    while [ $masa != $alarm ];do
    sleep 1 #wait 1 second
    masa=”`date +%k:%M`” #update time
    done

One Trackback

  1. [...] je bunyi dia. Mana la tau selepas habis saja saya belajar menulis shell scripts ni, saya dapat buat Alarm Clock yang lebih advanced dari saudara Novatech. January 16th, 2008Artikel Ubuntu Transparent Ubuntu [...]