Script shell:

Fermé
alphon5o - 26 nov. 2010 à 18:57
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 26 nov. 2010 à 20:04
Bonjour,

je souhaite écrire un script shell qui me permet d'effectuer une ou des actions en fonctions de l'heure courante. j'ai donc créer une tache cron qui va exécuter le script aux moments spécifié.
mais je n'arrive pas a réaliser le script; je ne suis pas a l'aise en script shell.

voici une ébauche de ce que je veux faire:

1. je récupère l'heure courante dans une variable: heure=$(date +%H)
2. je souhaite( je ne sais pas si c'est possible en bash) faire une boucle switch sur l'heure courante et faire ceci:
2.1. si heure ∈ [8-12[ alors je fais tel action
2.2. sinon si heure ∈ [12-14[ alors je fais tel action
.
.
.

voila en gros ce que je cherche a faire. si vous avez des idées n'hésitez pas à me les faire partagez. et merci d'avance pour vos contributions.

A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
26 nov. 2010 à 19:14
Salut,

Un truc comme ça devrait le faire...

if [ "$heure" -ge "8" -a "$heure" -lt "12" ]
then commande
elif
[ "$heure" -ge "12" -a "$heure" -lt "14" ]
then commande
else exit
fi

0
merci pour ta réponse mais je voudrais justement éviter les if car j'en ai près d'une dizaine de condition a tester. c'est pourquoi j'essaye de me tourner vers switch que j'utilise en c ou sinon je viens voir la structure case que je ne maitrise pas. donc si ta une meilleur solution pour se passer des if je suis preneur. encore merci d'avoir pris la peine de me répondre.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
26 nov. 2010 à 20:04
heure=$(date +%H)

case "$heure" in
8|9|10|11)	commande
		;;
12|13)		commande
		;;
esac
0