[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
Configuration: Linux Suse Firefox 3.0.1
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. -
hello
il me semble que c'est une contrainte de getopts, puisque b attend une option b: le champs suivant -b est considéré comme l'option de b