howtophil icon

Remind yourself to do something every X minutes (bash)

howtophil | PRO | 07/04/18 04:29:15 PM UTC | 0 ⭐ | 614 👁️ | Never ⏰ | []
Bash |

1.04 KB

|

None

|

0 👍

/

0 👎

#!/bin/bash
 
#------------------------------------------------------------------------
#
# A simple script to remind you do something
# every X number of minutes. It uses espeak
# to tell you a message then waits for a 
# space bar to start the timer again.
#
# ctrl-c exits
#
# ./doeveryxminutes.sh [minutes integer] "Message to self string"
#
# Hope you ejoy,
#    Phillip J Rhoades
#
#------------------------------------------------------------------------
 
# Initialize some things
xminutes=$1
themessage="$2"
 
###
 
tput civis #hide the cursor
 
#Bring the cursor back after ctrl-c
trap ctrl_c INT
function ctrl_c() {
        tput cvvis
    exit
}
 
#Loop those minutes
while [ 1 ]; do
    secs=$(($xminutes * 60))
    while [ $secs -gt -1 ]; do
        theminutes=$(printf "%02d" $((m=(${secs}%3600)/60)))
        theseconds=$(printf "%02d" $((s=${secs}%60)))
        echo -ne "Countdown to \"$themessage\": $theminutes:$theseconds\033[0K\r"
        sleep 1
        : $((secs--))
    done
    echo $themessage |espeak >/dev/null
    echo -ne "Press space to continue...\033[0K\r"
    read -n1 -r -p "" key
 
done

Comments