[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Expression régulière !



Bonjour,

En effet, je me suis mélangé les pinceaux avec des apostrophes qui rendaient mon code invalide et du coup je suis parti dans des trucs incroyablement compliqués.... :-(
La réponse de Yves est parfaite.

Il y a une deuxième chose que je n'ai pas réussi à faire:

Si à la place d'une valeur numérique comprise entre -16 et 16 je réponds "xyz" alors le test renvoie ceci:

line 5: [: pp : nombre entier attendu comme _expression_

J'ai donc modifier le code ainsi:

if [[ $1 != [-0-9] ]];then
   echo "Pas bon";
   exit;
else
   # On crontrôle que $1 soit sompris entre -16 et 16
   if [ $1 -lt 16 ] && [ $1 -gt -16 ]; then
      echo "Ok";
   else
      echo "Pas Ok";
   fi
fi

La première ligne est sensée contrôler que $1 ne soit composée que d'un signe "-" (ou d'aucun digne) et de chiffres.
Problème: si je rentre -8 le test répond "Pas bon" !

Là encore, j'ai essayé plein de syntaxes mais aucune ne fonctionne.

Merci pour votre aide

Pascal

Le 18 novembre 2011 14:19, Yves Rutschle <debian.anti-spam@rutschle.net> a écrit :
On Fri, Nov 18, 2011 at 01:09:15PM +0100, Luxpopuli Open source wrote:
> Dans un script bash, j'ai besoin de contrôler que la valeur taper par
> l'utilisateur est comprise dans l'intervalle [-16, 16]
> Et franchement, je n'arrive à rien du tout.
>
> S'il y a un pro des expressions régulières, je le bénis d'avance de bien
> vouloir voler à mon secours ! ;-)

Utiliser des expressions régulières pour faire de
l'arithmétique, c'est un peu comme utiliser un tourne-vis
pour planter des clous (on peut y arriver, mais c'est
vraiment pas fait pour).

Regarde plutôt test(1), options -le, -ge et autres:

if [ $a -lt 16 ] && [ $a -gt -16 ]; then echo "good"; else echo "not good"; fi

Y.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: [🔎] 20111118131949.GP9552@naryves.com" target="_blank">http://lists.debian.org/[🔎] 20111118131949.GP9552@naryves.com



Reply to: