Test simple
Résolu
moreje
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
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 disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- 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!!