Test simple
Résolu
moreje
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour,
j'essaye un script bash ou je recupere et veux tester un argument optenu par getopts
mon probleme, c'est que si je mets '17' comme argument dans ma commande mon code me sort:
une idée sur ce que je fais mal?
a terme, je voudrais pouvoir entrer une array de nombres en argument : '17 5 12 25'
Merci!
j'essaye un script bash ou je recupere et veux tester un argument optenu par getopts
MYVAR=$OPTARG
echo ${MYVAR}
if [[ "$MYVAR" == [:digit:] ]] then
echo $MYVAR is number
exit 1
else echo $MYVAR is not number
fi
mon probleme, c'est que si je mets '17' comme argument dans ma commande mon code me sort:
17 is not number
une idée sur ce que je fais mal?
a terme, je voudrais pouvoir entrer une array de nombres en argument : '17 5 12 25'
Merci!
A voir également:
- Test simple
- Test performance pc - Guide
- Test steam deck oled - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test composant pc - Guide
- Iphone 14 simple - Guide
4 réponses
Salut,
Pour une classe définie, il faut des doubles crochets "[[:digit:]]".
Ensuite si le then est sur la même ligne que le "if" il faut le séparer par un point virgule :
Pour une classe définie, il faut des doubles crochets "[[:digit:]]".
Ensuite si le then est sur la même ligne que le "if" il faut le séparer par un point virgule :
if [[ "$MYVAR" == [[:digit:]] ]] ; then ...
Merci...
malheureusement, malgré l'ajout des doubles ]
j'ai toujours
17 is not number
malheureusement, malgré l'ajout des doubles ]
j'ai toujours
17 is not number
voilà:
et la commande:
moncode -l '17' fichieratraiter
#!/bin/bash
while getopts ":l:" opt; do
case $opt in
l)
echo "-l actif: les labels selectionnés sont: $OPTARG" >&2
MYVAR=$OPTARG
echo ${MYVAR}
if [[ "$MYVAR" == [[:digit:]] ]] ; then
echo "-l: $MYVAR is number"
exit 1
else echo "${MYVAR} is not number"
fi
;;
\?)
echo "option invalide: -$OPTARG" >&2
exit 1
;;
:)
echo "Option $OPTARG necessite un argument" >&2
exit 1
;;
esac
done
et la commande:
moncode -l '17' fichieratraiter
super, merci c'est presque bon!
c'est quoi la signification de ce ~ ?
Je dis presque bon, car si le nom de mon fichier a traiter contient un chiffre, et que je lance une commande avec une erreur (oubli de l'argument)
moncode -l fichieratraiter1
le test passe car il trouve un chiffre dans le nom de fichier.
sais tu comment tester pour que l'argument ne contienne QUE des chiffres?
Merci!!
c'est quoi la signification de ce ~ ?
Je dis presque bon, car si le nom de mon fichier a traiter contient un chiffre, et que je lance une commande avec une erreur (oubli de l'argument)
moncode -l fichieratraiter1
le test passe car il trouve un chiffre dans le nom de fichier.
sais tu comment tester pour que l'argument ne contienne QUE des chiffres?
Merci!!