Bonjour,
J'aimerais savoir si dans un scrip shell, et dans un while il y a un moyen que le test d'arret s'effectue par un timer (une duree)
Par exemple comment faire une boucle while qui s'execute pendt 5 heures.
Merci pour vos reponse
Bonjour,
J'aimerais savoir si dans un scrip shell, et dans un while il y a un moyen que le test d'arret s'effectue par un timer (une duree)
Par exemple comment faire une boucle while qui s'execute pendt 5 heures.
Merci pour vos reponse
Bonjour,
La solution la plus simple, algorithmiquement parlant, est la suivante :
A toi de le coder dans le langage que tu souhaites maintenant...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 begin_time = get_time() keep_going = true duree = 5 * 60 * 60 #duree du while en seconde while (keep_going) { ## faire ce que tu veux faire ## Ne pas oublier de s'endormir pour ne pas consommer 100% de CPU end_time = get_time() if ((end_time - begin_time) >= duree keep_going = false }
En script shell, il est possible de sortir d'un "while" grace à un "break".
Il est donc possible de construire une date butée avec un formattage particulier, et à chaque itération, tester si cette date est dépassée et tout stopper dans l'affirmative.
Une bonne solution, pour formatter des dates comparables, c'est avec :et avec une option pour préciser un écart :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $(date +%Y%m%d%H%M%S)Tout cela fonctionne sans problème (j'ai testé
Code : Sélectionner tout - Visualiser dans une fenêtre à part $(date -d "+10 min" +%Y%m%d%H%M%S)), mais il ne faut surtout pas oublier d'endormir le script, comme l'a fait remarquer gangsoleil, sinon la machine est à genoux
![]()
il faut vraiment que je lise un jour man date sous Linux, ce -d a l'air très chouetteEnvoyé par 2Eurocents
![]()
Partager