vérifier si l'heure actuelle est entre deux fois au format HHmmss en script shell

J'ai un script qui appelle doSomeWork.sh chacun et tous les 10 minutes.

Mais à la condition que le doSomeWork.sh il ne faut pas courir entre 23:30:00 à 03:00:00.

J'ai fait mon script à ressembler à quelque chose comme ci-dessous.

#!/bin/ksh
prodStartTime="030000"
prodEndTime="233000"

currentTime=`date +"%H%M%S"`
echo $prodStartTime
echo $prodEndTime
echo $currentTime
while true
do
if [[ $currentTime -ge $prodStartTime && $currentTime -le $prodEndTime ]];
then
      ./doSomeWork.sh
else
 echo Do Nothing
fi
sleep 600
done

Mise à JOUR: Maintenant, j'ai le code de travail en cochant la production timings au lieu du mode nuit timings(Voir l'historique des modifications). Mais on dirait que mon script est en considérant les valeurs Octales comme suggéré par "twalberg" dans les commentaires. Quelqu'un pourrait-il m'aider comment prendre soin de ces valeurs?

J'ai simplement besoin d'un moyen pour s'assurer que mon script s'exécute entre la période spécifiée.

Il n'y a pas de raison de l'utilisation de l'écho pour les missions, juste de les affecter. nightModeStartTime=230000; nightModeEndTime=033000
Ce n'est pas de travail? Il peut aussi faire sens (lorsque vous appuyez sur l'interdiction de la fenêtre) pour dormir plus longtemps (peut-être même presque toute la longueur de la fenêtre tout à la fois) pour éviter le bouclage si souvent au cours de la fenêtre.
Avez-vous pensé que votre 033000 (et tout résultat de date qui a zéros) est susceptible d'être interprétée comme un nombre octal? Vous n'avez pas vraiment expliquer comment ça ne marche pas, donc c'est juste une supposition, mais... ce serait le cas dans bash, mais je ne sais pas si la version de ksh vous travaillez avec le ferais ou pas.
Script, comme il est indiqué ne sera pas exécuté ./doSomeWork.sh entre 23:00:00 et 03:30:00 (pas comme Vous l'écrivez à 23:30:00 et 03:00:00), si c'est un problème.

OriginalL'auteur Raja Anbazhagan | 2014-12-05