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 :

Tester le type d'une variable


Sujet :

Linux

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 152
    Points : 100
    Points
    100
    Par défaut Tester le type d'une variable
    Bonjour,

    Comment tester le type d'une variable, par exemple, si elle est de type entier ou non ?

    Merci

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par mzt.insat
    Comment tester le type d'une variable, par exemple, si elle est de type entier ou non ?
    Une variable shell ?
    Ce sont systématiquement des chaines de caractères, même s'il est parfois possible de faire un peu d'arithmétique avec.

    S'il s'agit de vérifier la forme du contenu, pour s'assurer que l'on puisse bien la considérer comme un entier, par exemple, un test avec une expression rationnelle bien construite peut aider, mais ce n'est pas forcément aisé.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 152
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par 2Eurocents
    par exemple, un test avec une expression rationnelle bien construite peut aider.
    Comment ?

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    tmp=`echo $var | awk -F "[0-9]" '{print $2}' | wc -c`
    if test $tmp -gt 0 then
      echo "incorrect"
    else
      echo "correct"
    fi
    enfin, de tête...
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Citation Envoyé par 2Eurocents
    Une variable shell ?
    Ce sont systématiquement des chaines de caractères, même s'il est parfois possible de faire un peu d'arithmétique avec.

    S'il s'agit de vérifier la forme du contenu, pour s'assurer que l'on puisse bien la considérer comme un entier, par exemple, un test avec une expression rationnelle bien construite peut aider, mais ce n'est pas forcément aisé.
    Ce n'est pas tout à fait exacte car on peut déclarer des variable de type entier via la commande declare :

    narma@linimi:~$ declare -i tyty
    narma@linimi:~$ tyty=123
    narma@linimi:~$ echo $tyty
    123
    narma@linimi:~$ tyty=123+5
    narma@linimi:~$ echo $tyty
    128

    narma@linimi:~$ tyty=123ff
    bash: 123ff: value too great for base (error token is "123ff")
    narma@linimi:~$ tyty=123sss
    bash: 123sss: value too great for base (error token is "123sss")

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    sur mon shell, j'employe typeset -i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ export var1=1234 var2=abcd                                                       
    $ (typeset -i var1) && echo "var1 est numérique" || echo "var1 n'est pas numérique"
    var1 est numérique
    $ (typeset -i var2) && echo "var2 est numérique" || echo "var2 n'est pas numérique"
    /usr/bin/ksh: abcd: 0403-009 The specified number is not valid for this command.
    var2 n'est pas numérique

Discussions similaires

  1. Tester le "type" d'une variable
    Par miass_student dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 26/03/2008, 19h46
  2. Tester le type d'une variable de type "Variant"
    Par nono27200 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 30/08/2007, 21h26
  3. Tester le type d'une variable
    Par jmbonnaz dans le forum MATLAB
    Réponses: 2
    Dernier message: 29/06/2007, 17h37
  4. tester le type d'une variable
    Par MayOL69bg dans le forum Langage
    Réponses: 5
    Dernier message: 16/04/2007, 14h31
  5. Tester le type d'une variable
    Par Débéa dans le forum Général Python
    Réponses: 2
    Dernier message: 03/08/2006, 16h45

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