Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
verification nb parametres bash
Envoyé par: philkrolgad

Bonjour

est ce que vous pourriez nous expliquer comment vérifier un nombres de paramèters passés en bourne shell??

notre instruction [ $#!=1 ] ne fonctionne pas....Il s'agit de vérifier que l'utilisateur n'a saisi qu'un paramètre...

merci de votre aide

Poste le Wednesday 22 November 2006 12:02:36
Répondre     Citer    
Re: verification nb parametres bash
Envoyé par: soundcha0s

bonjour philkrolgad
ton test [$#!=1] ne fonctionne pas car tu as oublié les espaces !!
remplace ton test par [ $# != 1 ] en respectant bien les espaces et tu verras que ça fonctionnera, les crochets "[ ]" remplacent la fonction "test", et si tu utilises cette fonction $#, != et 1 en seront les paramètres, donc ils seront séparés par des espaces.

voilà c'est tout
bon courage pour ton script

Poste le Wednesday 22 November 2006 13:05:04
Répondre     Citer    
Re: verification nb parametres bash

Sinon, il existe aussi la primitive getopts de bash qui pourrait t'être utile pour analyser les arguments de ton script. Voir par exemple [www.c-sait.net] et STFW et RTFM ;-p

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Wednesday 22 November 2006 19:27:38
Répondre     Citer    
Re: verification nb parametres bash
Envoyé par: Sve@r

Citation
philkrolgad
Bonjour

est ce que vous pourriez nous expliquer comment
vérifier un nombres de paramèters passés en bourne
shell??

notre instruction [ $#!=1 ] ne fonctionne
pas....Il s'agit de vérifier que l'utilisateur n'a
saisi qu'un paramètre...

merci de votre aide
Soundchaos a parfaitement analysé le pb.
Pour ma part, je rajouterait 2 trucs
1) l'opérateur "!=" est fait pour les chaînes, pas pour les chiffres. Pour les chiffres faut utiliser "-ne". Cela peut sembler équivalent mais cela ne l'est absolument pas. Exemple:
test 01 -ne 1   => renvoie "faux" ce qui correspond à la réalité
test "01" != "1" => renvoie "vrai" alors que, numériquement, les valeurs sont identiques => bug en perspective...
A méditer...
2) quand on teste qu'un script a bien un paramètre, on se fout généralement des autres paramètres s'il y en a. Donc il vaut mieux s'arrêter si "$# -lt 1" et non si "$# -ne 1"...

L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Tuesday 19 December 2006 20:32:18
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
verification nb parametres bash
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons