Vérifier argument script via expression régulière

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

Vérifier argument script via expression régulière

Messagepar koatler » 17 Oct 2006 17:04

Hello,

Je crée un script sh standard et j'aimerais vérifier que l'argument donné lorsqu'on exécute ce script soit uniquement un nombre, ou un nombre "virgule" un autre nombre.

Exemples :

44
87,21


Si tel n'est pas le cas le script ne doit pas s'exécuter... J'ai essayé avec des expressions régulières mais apparemment qqch m'échape.

Voici l'expression utilisée : [0-9]+(,[0-9]+)?

Si quelqu'un a la solution je suis preneur car je me prends la tête la dessus depuis 2 heures!!!

D'avance merci
koatler
koatler
Matelot
Matelot
 
Messages: 9
Inscrit le: 12 Oct 2006 17:02

Messagepar Franck78 » 17 Oct 2006 21:39

Peut être

[0-9]*,?[0-9]*

qui autorise aussi ',9' et '9,'

ou
([0-9]+|[0-9]+,[0-9]+)

ici, si virgule il y a, chiffres il faut devant et derrière!
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar koatler » 18 Oct 2006 09:55

OK je vais voir ça, mais saurais-tu la syntaxe à utiliser pour tester si l'argument du script correspond à ça ? Il me semble que je foire qque part... Utiliser sed? ou autre? Avec un IF?... Bref je suis un peu paumé là... :roll:
koatler
Matelot
Matelot
 
Messages: 9
Inscrit le: 12 Oct 2006 17:02

Messagepar koatler » 23 Oct 2006 09:50

up! :roll:
koatler
Matelot
Matelot
 
Messages: 9
Inscrit le: 12 Oct 2006 17:02

Messagepar Jacques- » 24 Oct 2006 08:48

Un truc simple pour vérifier une saisie, c'est de faire disparaître tout ce qui est autorisé, s'il reste quelque chose... c'est que la saisie est incorrecte.
Un truc du genre :
Code: Tout sélectionner
TestVar=$(echo $Variable | tr -d [0-9])
[ -z "$TestVar" -o "$TestVar" = "," ] && echo "Saisie correcte" || echo "Saisie incorrecte"

devrait satisfaire tes besoins.
De plus dans ce cas, une seule virgule est autorisée.

A contrôler, ou à utiliser comme idée.

Jacques
Avatar de l’utilisateur
Jacques-
Vice-Amiral
Vice-Amiral
 
Messages: 952
Inscrit le: 23 Jan 2003 01:00

Messagepar koatler » 24 Oct 2006 16:34

Ca marche niquel, merci beaucoup !!!

Salutations
koatler
koatler
Matelot
Matelot
 
Messages: 9
Inscrit le: 12 Oct 2006 17:02


Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité