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 :

Comment interrompre un compte à rebours ?


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut Comment interrompre un compte à rebours ?
    Bonjour à tous !

    J'ai une question, je voudrais ecrire un script qui se lance au demarrage de linux, le plan de programmation est celuici:

    #lancement du script
    -compte à rebours
    -> si frappe au clavier, compte à rebours arreté et attente d'une réponse à une question posée

    -> sinon, execution d'une commande predefinie
    #fin du script

    Script du compte à rebours:
    rebours() {
    i=$1
    echo " "
    while [[ $i -ge 0 ]]
    do
    echo -e "\r "$i" \c"
    sleep 1
    i=$(expr $i - 1)
    done
    echo " - "
    }


    # appel d'un compte à rebours de 5 secondes
    rebours 5
    Ma question porte sur le compte à rebours, comment arreter celui ci ?

    Merci d'avance !
    RedVivi

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    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
     
    rebours() {
    variable="mavariable"
    i=$1
    echo " "
    while ( [ $i -ge 0 ]  &&   [ "$variable" == mavariable ] )
     do
            echo -e "\r |$i| \c"
            read  -n 1  -t 1 variable    
            let i=i-1
     done
    echo " - "
    }

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par becket
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    rebours() {
    variable="mavariable"
    i=$1
    echo " "
    while ( [ $i -ge 0 ]  &&   [ "$variable" == mavariable ] )
     do
            echo -e "\r |$i| \c"
            read  -n 1  -t 1 variable    
            let i=i-1
     done
    echo " - "
    }
    Heu pardonne moi mais je suis dans le brouillard là....que signifie ma variable ? comment faire fonctionner ceci pour n'importe quelle touche ? Peux tu commenter les lignes de ce script stp ?

    Merci beaucoup !
    RedVivi

  4. #4
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    variable="mavariable"

    while ( $variable == "mavariable" )
    [..]
    read ... variable
    [..]

    je vois pas ce que je pourrais commenter plus

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par becket
    variable="mavariable"

    while ( $variable == "mavariable" )
    [..]
    read ... variable
    [..]

    je vois pas ce que je pourrais commenter plus
    Ha variable correspond à la touche frappée c sa ? Ou alors je n'ai absolument pas compris la logique de la chose ?

  6. #6
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    C'est exactement cela

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    J'ai réussi à faire fonctionner le script, cependant j'ai un problemen quoi qu'il arrive je n'arrive pas à obtenir "question" ? Ou est l'erreur ?

    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
    #!/bin/bash --debug
    rebours() {
    variable="mavariable"
    i=$1
    echo "boot du script"
    while ( [ $i -ge 0 ]  &&   [ "$variable" == mavariable ] )
     do
            echo -e "\r $i \c"
            read  -n 1  -t 1 variable
            let i=i-1
    done
     
    if  [ $i==0 ];
    then
    echo "backup"
    else
    echo "question"
    fi
    }
    Merci d'avance !!

  8. #8
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    deux "corrections"

    Remplace if [ $i -ge 0 ] par if [ $i -gt 0 ] ( sinon tu stoppes la boucle à -1 )

    Et Remplace if [ $i==0 ]; par if [ $i -eq 0 ] tu vérifies la valeur numérique de la variable

Discussions similaires

  1. [WD20] Comment bloquer le compte à rebours d'une boite de dialogue
    Par lololebricoleur dans le forum WinDev
    Réponses: 4
    Dernier message: 18/04/2015, 22h32
  2. Réponses: 16
    Dernier message: 20/04/2014, 17h48
  3. Comment faire un compte a rebour
    Par New59 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/02/2013, 11h22
  4. [plugin][tomcat] Comment prendre en compte les jar ?
    Par djodjo dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 08/04/2004, 19h47
  5. [reseaux] Comment creer un compte user à partir d'un formul avec perl
    Par oulai_evado dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 01/10/2002, 19h54

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