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

Shell et commandes GNU Discussion :

Controle saisie utilisateur


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 345
    Par défaut Controle saisie utilisateur
    Bonjour,
    Je cherche a contrôler la saisie de l'utilisateur.
    J'ai trouvé ça de Sve@r du 19/04/2009
    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/sh
    while true
    do
        echo "Réponse O/N ?"
        read rep
        case $rep in
             [oO][uU][iI] | [oO])
                    rep=o
                    break
                    ;;
             [nN][oO][nN] | [nN])
                    rep=n
                    break
                    ;;
             *) echo "Mauvaire réponse - Recommencez"
        esac
    done
     
    echo "Réponse: $rep"
    J'aimerais faire uniquement un test sans boucle du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo "Réponse O/N ?"
    read rep
    [ "$rep" = [oO]* ] && echo good || echo bad
    mais j'obtiens toujours bad.
    La notation [oO]* n'est pas valable dans le test?
    Merci
    ctac_

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ [[ "$rep" =~ [oO]* ]] && echo good || echo bad
    good

  3. #3
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Bonjour,
    Citation Envoyé par Flodelarab Voir le message
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ [[ "$rep" =~ [oO]* ]] && echo good || echo bad
    good
    Euh...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ rep=non
    $ [[ "$rep" =~ [oO]* ]] && echo good || echo bad
    good

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 345
    Par défaut
    Merci pour la réponse.
    ça fonctionne avec bash (#!/bin/bash) mais pas avec dash (#!/bin/sh)
    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
    while true
    do
        echo "Réponse O/N ?"
        read rep
    [[ "$rep" =~ [oO]* ]] && echo good || echo bad
        case $rep in
             [oO]*)
    echo $rep
                    rep=o
                    break
                    ;;
             [nN][oO][nN] | [nN])
                    rep=n
                    break
                    ;;
             *) echo "Mauvaire réponse - Recommencez"
        esac
    done
     
    echo "Réponse: $rep"
    j'obtient ça d'abord avec dash puis avec bash
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    alain@debian:~/Documents/Script_bash$ ./testfonction.sh
    Réponse O/N ?
    o
    ./testfonction.sh: 8: ./testfonction.sh: [[: not found
    bad
    o
    Réponse: o
    alain@debian:~/Documents/Script_bash$ ./testfonction.sh
    Réponse O/N ?
    o
    good
    o
    Réponse: o
    ctac_

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Tout shell (enfin je crois ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    expr "$rep" : [oO] >/dev/null && echo good || echo bad

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut


    Au temps pour moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ rep='non'; [[ "$rep" =~ ^[oO]+ ]] && echo good || echo bad
    bad
    $ rep='n'; [[ "$rep" =~ ^[oO]+ ]] && echo good || echo bad
    bad
    $ rep='o'; [[ "$rep" =~ ^[oO]+ ]] && echo good || echo bad
    good
    $ rep='oui'; [[ "$rep" =~ ^[oO]+ ]] && echo good || echo bad
    good

Discussions similaires

  1. controle saisie date utilisateur
    Par cath2123 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/10/2009, 11h29
  2. [C#.NET] Controle Saisie cellule du Datagrid
    Par lefebvse dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/04/2005, 14h56
  3. controle saisie
    Par star_light dans le forum C++
    Réponses: 14
    Dernier message: 15/03/2005, 19h19
  4. [langage] fin de saisie utilisateur
    Par Kinethe dans le forum Langage
    Réponses: 4
    Dernier message: 24/06/2004, 14h19
  5. [langage] saisie utilisateur
    Par caro_du_94 dans le forum Langage
    Réponses: 13
    Dernier message: 03/06/2004, 18h05

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