((expr $val + 1)>1/dev/null) 2>/dev/null

Résolu/Fermé
schizophrenia - 20 mars 2009 à 09:43
 schizophrenia - 20 mars 2009 à 14:20
Bonjour,
g rencontrer pas mal de fois cette expression dans les solutions des exercices
par exemple pour savoir que l'utilisateur a introduit un entier ou un caractere il fait le test
if ((expr $val + 1)>1/dev/null) 2>/dev/null
then
echo c'est un entier
ce test de quoi il s'agit
aidez moi svppppppppppppppppppppppppppppppppppppppppppppp
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 mars 2009 à 12:28
Salut

if ((expr $val + 1)>1/dev/null) 2>/dev/null
(expr $val + 1) permet de réaliser l'addition $val + 1. Cette dernière n'a de sens que si $val est numérique. Si $val est numérique alors expr renvoie la valeur, sinon expr renvoie un message d'erreur. Le message d'erreur est redirigé sur /dev/null, ce qui permet de ne pas le faire afficher à l'écran.
Et ensuite on teste si expr $val +1 > 1. Cela permet donc de savoir si $val est strictement positif. Si tel est le cas, on rentre dans le if.

Plus simple serait de mettre :
a=f;if [ $a -gt 0 ] 2>/dev/null; then 
echo "c'est un entier positif strictement"; fi


Voici un lien, qui pourrait t'intéresser : http://www.commentcamarche.net/faq/sujet 4605 shell tester une variable numerique
Cdlt
2
schizophrenia
20 mars 2009 à 14:20
merci infiniment on pourra rien faire sans votre aide
merciiiiiiiiiiiiiii pour le liens
0