IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Faire un while avec condition d'arrêt une durée


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 20
    Points
    20
    Par défaut Faire un while avec condition d'arrêt une durée
    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

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 121
    Points
    28 121
    Par défaut
    Bonjour,

    La solution la plus simple, algorithmiquement parlant, est la suivante :

    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
    }
    A toi de le coder dans le langage que tu souhaites maintenant...
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    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 -d "+10 min" +%Y%m%d%H%M%S)
    Tout cela fonctionne sans problème (j'ai testé ), mais il ne faut surtout pas oublier d'endormir le script, comme l'a fait remarquer gangsoleil, sinon la machine est à genoux
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par 2Eurocents
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(date -d "+10 min" +%Y%m%d%H%M%S)
    il faut vraiment que je lise un jour man date sous Linux, ce -d a l'air très chouette

Discussions similaires

  1. [XL-2003] Faire un cumul avec condition.
    Par probexcel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2009, 09h52
  2. [MySQL] Imbrication de WHILE avec conditions
    Par cysedbs dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/01/2009, 15h56
  3. Réponses: 2
    Dernier message: 18/09/2008, 18h06
  4. Faire un SUM avec conditions sans tables temporaires
    Par jonklay dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/01/2007, 09h39
  5. Réponses: 12
    Dernier message: 12/06/2006, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo