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 :

Aide commande expr


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut Aide commande expr
    Bonjour,
    j'ai un exercice à faire avec la commande expr mais je comprend pas comment m'en servir.
    pour tester si par exemple ma variable a est un nombre, puis-je faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    expr $a : ^[0-9][0-9]*[0-9]$
    quand je met ça, la console me renvoie 2. Cela veut donc dire que l'expression est invalide c'est ça ? Alors comment faire ?
    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 962
    Par défaut
    Citation Envoyé par efelant Voir le message
    Bonjour,
    j'ai un exercice à faire avec la commande expr mais je comprend pas comment m'en servir.
    pour tester si par exemple ma variable a est un nombre, puis-je faire :

    expr $a : ^[0-9][0-9]*[0-9]$

    quand je met ça, la console me renvoie 2. Cela veut donc dire que l'expression est invalide c'est ça ? Alors comment faire ?
    Merci d'avance
    le ^ est inutile car implicite dans la syntaxe
    le nombre renvoyé par expr est le nombre de caractères qui correspondent au pattern

    si $a est un nombre entier alors les 2 expressions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    expr "$a" : '[0-9]*'  
    expr "$a" : '.*'
    doivent renvoyé la même valeur

    ou $a doit être égal au résultat de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    expr $a : '\([0-9]*\)'

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    Je pense que la première proposition correspond plus à ce que je veux faire. Quand l'utilisateur indiquera la valeur de la variable a , je pourrais donc dire que je veux qu'elle soit équivalente à 2chiffres consécutifs seulement, mais même si la console me retourne 2, je dois exclure les lettres là il les prend quand même en compte.Par exemple si la valeur de a est "45er" et que je veut qu'il me dise que ça contient bien 2 chiffres.
    Je calcule la taille de la variable si c'est équivalent à 2
    expr length $a
    et si c'est le cas, je vérifie maintenant qu'il y a bien 2 chiffres parmi c'est deux caractères grâce au code écrit dans la précédente réponse ?!

    En tout cas merci beaucoup

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

Discussions similaires

  1. aide commande unix
    Par ould64 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 15/08/2008, 12h38
  2. [AIDE] Commande wscript.stdout. qui ne marche pas.
    Par hcmskins dans le forum VBScript
    Réponses: 1
    Dernier message: 27/04/2008, 17h47
  3. la commande expr
    Par condor_01 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 21/04/2008, 15h49
  4. Aide commande find exclure repertoire
    Par isa150183 dans le forum Administration système
    Réponses: 4
    Dernier message: 12/05/2007, 23h51
  5. Aide commande DATE
    Par cstan dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 28/03/2007, 12h56

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