#!/bin/bash weekday='$dow -ge 1 -a $dow -le 5' while true do clear echo -e "\t\t\t\t\t\t@ $(date)\n" tod=$(date +%k%M,%w) dow=${tod#*,} tod=${tod%,*} stockcheck if [ $tod -lt 900 ] # 00:00-08:59, wait until 09:30 then st=$(( (8 - $tod / 100) * 3600 + (60 - $tod % 100) * 60 )) elif [ $tod -lt 930 ] # 09:00-09:29, wait until 9:30 then st=$(( (930 - $tod) * 60 )) elif eval [ $weekday -a $tod -lt 1600 ] # 09:30-15:59 then # run every 2 mins # st=$(( (1 - 1$(date +%M) % 2) * 60 + 160 - 1$(date +%S) )) # run every 3 mins st=$(( (2 - 3$(date +%M) % 3) * 60 + 160 - 1$(date +%S) )) # run every 4 mins # st=$(( (3 - 1$(date +%M) % 4) * 60 + 160 - 1$(date +%S) )) # run every 5 mins # st=$(( (4 - 1$(date +%M) % 5) * 60 + 160 - 1$(date +%S) )) elif eval [ $weekday -a $tod -lt 1830 ] # 16:00-18:29, run every 30 mins then st=1800 else # 18:30-23:59, wait until 09:30 st=$(( (9 + 23 - $tod / 100) * 3600 + (90 - $tod % 100) * 60 )) fi printf "\n" while [ $st -gt 0 ] do if [ $st -lt 3600 ] then printf "\r\t\t\t\t\t\tnext update in %d:%02d minutes " \ $(( $st / 60 )) $(( $st % 60 )) else printf "\r\t\t\t\t\t\tnext update in %d:%02d:%02d " \ $(( $st / 3600 )) $(( ($st % 3600) / 60 )) $(( $st % 60 )) fi sd=0 if [ $st -gt 30 ] then sd=$(( $st / 10 )) elif [ $st -gt 3 ] then sd=3 else sd=$st fi sleep $sd st=$(( $st - $sd )) done done