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

Programmation et administration système Perl Discussion :

Condition avec une intervalle


Sujet :

Programmation et administration système Perl

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Points : 137
    Points
    137
    Par défaut Condition avec une intervalle
    Bonjour,

    J'ai un bout de script dont je voudrais qu'il affiche un message ou fasse autre chose que si on est entre 7heures et 16heures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    (my $sec, my $min, my $hour,my $mday,my $mon,my $year,my $wday,my $yday,my $isdst) = localtime(time) ;
    if (($hours > 7) && ($hours < 16))   {
    print "il est $hours heures tout va bien\n";
    }
    Naturellement ce script ne fonctionne pas. D'appres mes recherche sur internet une interval en Perl se traduit par ceci : ..
    Mais je ne sais pas comment l'introduire dans mon script, j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    (my $sec, my $min, my $hour,my $mday,my $mon,my $year,my $wday,my $yday,my $isdst) = localtime(time) ;
    if ($hours = /7.. 16/)   {
    print "il est $hours heures tout va bien\n";
    }
    Sans succès....
    Merci de votre aide

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/usr/bin/perl
    use warnings;
    use strict;
     
    my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
    my $message;
    if ( ($hour > 7) and ($hour < 16) ) {
      $message = "il est $hour heures tout va bien\n";
    } 
    else {
      $message = "autre intervalle\n";  
    }
    print $message;

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Points : 137
    Points
    137
    Par défaut
    le double "et commercial" fonctionne si je ne fais pas de faute d’inattention

    arrfff....

    Encore Merci djibril

    Mais si je veux entrer une troixieme condition comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #!/usr/bin/perl
    use strict;
    use warnings;
    use Proc::ProcessTable;
     
    use MIME::Lite;
     
    my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time) ;
    my $message ;
    my $tproc = new Proc::ProcessTable;
    foreach my $proc ( @{$tproc->table} ){
            my $cmd=$proc->cmndline;
            my $uid=$proc->uid;
            my $pid=$proc->pid;
            my $pctcpu=$proc->pctcpu;
            #print $pctcpu;
            if (($pctcpu >6) and (($hour >7) and ($hour <16 ))) {
                    $message = "The processus that you launched with this command:\n$cmd\nneed your attention as it
    \'s using $pctcpu\%, meaning you're monopolised the server during the day.\nYou can kill it with this following
     command on the  server:\n\nkill $pid\n";
            } else {
              $message= "tout va bien\n";
    }
    }
    print $message ;
    Je suis toujours en condition faux puisque c'est le message :"Tout va bien bien" qui apparaît à la fin script alors que j'ai 2 processus à plus de 6%....

    Merci de votre aide...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Points : 137
    Points
    137
    Par défaut
    Le script comme ceci fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #!/usr/bin/perl
    use strict;
    use warnings;
    use Proc::ProcessTable;
     
    use MIME::Lite;
     
    my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time) ;
    my $message ;
    my $tproc = new Proc::ProcessTable;
    foreach my $proc ( @{$tproc->table} ){
            my $cmd=$proc->cmndline;
            my $uid=$proc->uid;
            my $pid=$proc->pid;
            my $pctcpu=$proc->pctcpu;
            #print $pctcpu;
             #if (($pctcpu >5) and ($hour <15 )) {
    if (($pctcpu >= 6) and  ($hour > 7) and ($hour < 16 )) {
     
                    print "The processus that you launched with this command:\n$cmd\nneed your attention as it\'s u
    sing $pctcpu\%, meaning you're monopolised the server during the day.\nYou can kill it with this following comm
    and on the  server:\n\nkill $pid\n";
            }
    }
    J'ai changé l'ordre des parenthèse et j'ai enlevé le else car cela ne fonctionne pas avec lui .... .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. condition avec une boucle
    Par mac7474 dans le forum Langage
    Réponses: 4
    Dernier message: 15/03/2010, 15h37
  2. condition avec une boucle qui marche pas
    Par lumycaan dans le forum Langage
    Réponses: 5
    Dernier message: 23/10/2009, 20h02
  3. ajout d'une condition avec une invite
    Par Claude_L dans le forum Webi
    Réponses: 1
    Dernier message: 05/06/2009, 20h51
  4. Réponses: 1
    Dernier message: 24/04/2009, 16h26
  5. EXcel : NB.SI 2 Conditions avec une date
    Par PhildarZ dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/03/2007, 19h40

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