How to check if today is a weekend using bash or even perl?
I want to prevent certain programs to run on a weekend.
How to check if today is a weekend using bash or even perl?
I want to prevent certain programs to run on a weekend.
printf also has date
printf -v day '%(%a)T'
case $day in
Sat|Sun) echo "Hooray!";;
esac
https://ideone.com/wU7C0c - demo
I am not really sure if this is suited to this question but I wanted to share this it to help others out and this is the closest Stack question to what I was looking for.
This is a shell script that I use for starting an application when i boot my computer, the application cannot connect to its server over the weekend (its down for maintenance as the service doesn't run at weekends (forex trading application).
Information about this script, d is 1 to 7 (mon to sun) h is 24 time. You can adjust this to your own settings, maybe you have a midweek maintenance or any other cause. This is my first ever shell script, so I'm sure there is a better way and if anybody wants make edits, feel free I will review for acceptance (or somebody else may do it)
#!/bin/bash
d=$(date +%u)
h=$(date +%H)
case $d in
'5')
# Friday after 10pm
if (($h >= 22)) ; then
exit
fi
;;
'6')
# all day saturday
exit
;;
'7')
#sunday before 10pm
if (($h < 22)) ; then
exit
fi
;;
*)
# any other time run the program
;;
esac
I like this way of running programs on weekdays:
[[ $(date +%u) -lt 6 ]] && weekday-program
It is a bit tricky construction, but compact and easy to add.