OVH Cloud OVH Cloud

[Q] test d'un nombre

11 réponses
Avatar
Nicolas.MICHEL
Bonjour

Dans un script shell, je demande d'entrer un chiffre de 0 à 59.
Comment vérifier son résultat ?

J'ai fait le truc qui suit, mais j'ai l'impression d'écrire fort mal :

if echo $result | grep -E "^[0-9]*$"
then
if expr $result \< 60
then
echo "coucou $result"
else
echo "que neni"
fi
else
echo "que neni"
fi

Merci d'avance :)
--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas

1 réponse

1 2
Avatar
Stephane Chazelas
2005-04-14, 13:14(+02), Eric Jacoboni:
(Nicolas MICHEL) writes:

Bonjour

Dans un script shell, je demande d'entrer un chiffre de 0 à 59.
Comment vérifier son résultat ?


En utilisant l'expansion arithmétique des shells POSIX ?

if (( $NBRE >= 0 && $NBRE <= 59 )); then
echo ok
else
echo nok
fi


Ce n'est pas POSIX, il n'y a pas d'expansion la dedans.
L'arithmetic expansion, c'est $((...))
Cette syntaxe est ksh/bash/zsh specifique, elle n'est pas dans
les sh des bsd ou dans dash par exemple.

Et on retrouve les memes problemes, "1 & 1" serait OK, RANDOM
serait ok des fois...

--
Stéphane


1 2