[shell] utilisation de getopts ?
mortelrdv
-
kadouille -
kadouille -
Bonjour,
pour essayer getopts, jai fait ceci (fichier titi.sh) :
sh titi.sh -a -b -o jhghg
il m'affiche pas l'erreur et considere que -c est l'argument de b !! est ce une limitation de getopts ou une erreur de ma part ?
Merci
pour essayer getopts, jai fait ceci (fichier titi.sh) :
while getopts "ab:o:" c ; do
case $c in
a) echo "OPTARG a"$OPTARG
;;
b) echo "OPTARG b "$OPTARG
;;
o) echo "OPTARG o"$OPTARG
;;
\?) echo "tototo"
exit 2
;;
esac
done
sh titi.sh -a -b -o jhghg
il m'affiche pas l'erreur et considere que -c est l'argument de b !! est ce une limitation de getopts ou une erreur de ma part ?
Merci
A voir également:
- [shell] utilisation de getopts ?
- Utilisation chromecast - Guide
- Classic shell - Télécharger - Personnalisation
- Télécharger gratuitement notice d'utilisation - Guide
- La ressource demandée est en cours d'utilisation - Forum Téléphones & tablettes Android
- Family link temps d'utilisation ne fonctionne pas - Forum Contrôle parental
2 réponses
Salut !
Cela va etre un peu tardif mais je viens de m'inscrire sur le forum, je faisais des recherches sur le getopt et paf je tombe sur ton probleme !
Au cas ou ça servira a d'autres.
Si à l'écran tu voulais obtenir :
OPTARG a
OPTARG b
OPTARG o
tototo
Voici la correction à apporter à ton code :
while getopts ":abo" c ; do
case $c in
a) echo "OPTARG a"$OPTARG
;;
b) echo "OPTARG b "$OPTARG
;;
o) echo "OPTARG o"$OPTARG
;;
\?) echo "tototo"
exit 2
;;
esac
done
Et tu dois lancer la commande avec un "-" devant "jhghg" :
sh titi.sh -a -b -o -jhghg
Sans ce tiret, le dernier paramètre ne sera pas pris en compte comme étant une option pour le optarg.
Cela va etre un peu tardif mais je viens de m'inscrire sur le forum, je faisais des recherches sur le getopt et paf je tombe sur ton probleme !
Au cas ou ça servira a d'autres.
Si à l'écran tu voulais obtenir :
OPTARG a
OPTARG b
OPTARG o
tototo
Voici la correction à apporter à ton code :
while getopts ":abo" c ; do
case $c in
a) echo "OPTARG a"$OPTARG
;;
b) echo "OPTARG b "$OPTARG
;;
o) echo "OPTARG o"$OPTARG
;;
\?) echo "tototo"
exit 2
;;
esac
done
Et tu dois lancer la commande avec un "-" devant "jhghg" :
sh titi.sh -a -b -o -jhghg
Sans ce tiret, le dernier paramètre ne sera pas pris en compte comme étant une option pour le optarg.