Script bash exécution dans une plage horaire définie

Résolu
Bonjour,

je voulais avoir vos conseils pour mettre en oeuvre un petit script bash:

- lorsque le script se lance s'il est en dehors d'une plage horaire définie, celui-ci s'arrête.

exemple:
entre 8h et 10h du matin: si le script test.sh se lance, il fait un check et donc s'arrête.

parcontre s'il s'éxécute à 7h, il s'exécute correctement.

5 réponses

  1. Contributeur
    Salut,

    Tu définis une variable avec l'heure courante (man date) et tu fais un test pour savoir si elle est comprise entre tes 2 heures de référence...
    1. Salut zipe, merci de ton aide j'avais pensé à faire quelque chose comme ça
      mais je ne suis pas sûre.

      --------------------------
      set variable heureDebut
      set variable heureFin

      check currentHour

      if currentHour appartient [heureDebut - heureFin]

      --> exécuter le script

      else go functionAbord
      echo "opération abordée"
      --------------------------

      Tu aurais une petite idée de comment rédiger ce petit script.
      Merci d'avance.
      1. Contributeur
        A adapter en remplaçant les variables début et fin :

        $ currentHour=$(date +%H)
        
        $ heureDebut=15;heureFin=16
        
        $ if [ ${currentHour} -lt ${heureFin} -a ${currentHour} -ge ${heureDebut} ]
        then echo OK
        else echo NOK
        fi
        OK
        
        $ heureDebut=14;heureFin=15
        
        $ if [ ${currentHour} -lt ${heureFin} -a ${currentHour} -ge ${heureDebut} ]
        then echo OK
        else echo NOK
        fi
        NOK
        
        $
    2. Bonjour Zipe,
      pourrais tu m'expliquer les paramètres que tu as mis -lt -a -ge s'il te plait.

      Car je souhaiterais faire la même chose que précédemment mais en exclusion.
      (exclusion de la plage horaire)

      Merci.
      1. Contributeur
        Re-

        man bash (Conditions)

        -eq = equal (égal à)
        -ne = no equal (différent de)
        -lt = lether than (plus petit que)
        -gt = greater than (plus grand que)
        -le = plus petit ou égal
        -ge = plus grand ou égal

        Pour la négation dans un test ( ! ) voir la commande test dans le man.