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 :

Vérifier les données que rentre un utilisateur en bash


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 3
    Par défaut Vérifier les données que rentre un utilisateur en bash
    Bonjour a tous

    Je souhaite créer une fonction intéractive qui vérifiera les données que rentre un utilisateur dans un shell.Par exemple en appelant cette fonction dans le script pour chaque vérification critique.

    Premier cas: je veux que mon utilisateur rentre un pseudo mais ce pseudo ne doit pas dépasser 10 caractères et doit obligatoirement commencer par médiaXXXXX, les X représentants les 5 derniers caractères que l'user rentre pour faire le choix de son pseudo.

    Second cas: l'utilisateur doit rentrer une date avec le format suivant, 03:10:16 donc dans ce cas la j'aimerais limité le nombre de caractère a 8 le : étant un caractère et faire en sorte que le : soit bien a sa place entre les deux chiffres de la datte.

    Merci beaucoup.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Bonjour,

    tu dois voir plusieurs choses dans le man :
    • comment utiliser la commande test
    • comment utiliser les crochets doubles [[ et =~ pour pouvoir employer des regex
    • comment utiliser le remplacement des paramètres
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 3
    Par défaut
    Merci pour le lien

    en faite j'essai de rentrer un nombre pour pouvoir l'utiliser plus tard:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    unset nombre
    while [ -z "${nombre}" ]; do read -p "Rentrez un nombre, le nombre maximum autorisé est le chiffre 13 " nombre; done
    if [ "${nombre}" = [1-9][0-3]; then
    Mais ça me renvoi une erreur.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    le nombre maximum autorisé est le chiffre 13
    donc, tu cherches à "valider" un nombre entre 1 (ou zéro, tu dois nous le préciser) et 13 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($nombre >= 1 && $nombre <= 13)); then ...; fi
    oui, j'aurais dû te parler d'Évaluation arithmétique !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 3
    Par défaut
    Merci ça marche niquel


    Afin d'éviter de revenir, tu sais ou je peux trouver de bonnes explications sur l'évaluation arithmétique ?

    Bonne soirée.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    c'est faisable dans un test simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ nombre=10
    $ if test $nombre -ge 1 && test $nombre -le 13; then echo ok ; else echo ko; fi
    ok
    $ nombre=20
    $ if test $nombre -ge 1 && test $nombre -le 13; then echo ok ; else echo ko; fi
    ko
    ici, on utilise des opérateurs de comparaison arithmétique de la commande test.

    dans une évaluation arithmétique (entre parenthèses doubles), la logique est la même, ça permet de raccourcir les expressions de test;
    on utilise les symboles arithmétiques traditionnels : = (assignation de variable), +, -, *, /, %, == (test d'égalité), >=, >, <, <=... (cf. man bash).

    tu comprendras en expérimentant.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/06/2007, 15h33
  2. Vérifier les données
    Par christi dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/02/2007, 09h23
  3. Réponses: 3
    Dernier message: 12/01/2007, 17h43
  4. Récupérer des données que fournit l'utilisateur
    Par henriG dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/04/2006, 19h02
  5. Réponses: 6
    Dernier message: 06/04/2006, 20h52

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