Bonjour,
Comment tester le type d'une variable, par exemple, si elle est de type entier ou non ?
Merci
Bonjour,
Comment tester le type d'une variable, par exemple, si elle est de type entier ou non ?
Merci
Une variable shell ?Envoyé par mzt.insat
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é.
enfin, de tête...
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
Ce n'est pas tout à fait exacte car on peut déclarer des variable de type entier via la commande declare :Envoyé par 2Eurocents
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")
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager