Bonjour,
Dans mon script "test.sh" je souhaiterais verifier les options et leurs valeures associés avec la function getopts. Voila le code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
if [ $# -eq 1 -a "$1" = -h ]; then
usage
fi
while getopts ":c:n:" option
do
case $option in
c)
if [ -n $OPTARG ]; then
print "ERROR: You must provide a TRUE or FALSE to indicate your need: "
usage
else
identifyClearedTraps "$OPTARG"
fi
;;
n)
NB_TRAPS="$OPTARG"
;;
\?) echo " option $OPTARG INVALIDE" >&2
E_OPTION=3
esac
done
shift $(($OPTIND - 1))
cmd1
cmd2
cmd3
..... |
Et voila mes questions:
Question 1:
Si j'appele mon script de la facon suivante: le script est appelé sans erreur et tous mes commandes sont executés malgré que l'option n'est pas valide. Par contre, si je l'appele comme suit : là j'ai un message d'erreur m'indiquant que l'option n'est pas valide.
Comment je dois faire pour que dans les deux cas j'aurrai le message d'erreur ?
Question 2:
dans la ligne :
while getopts ":c:n:" option
le : apres "c" et "n" signifie que ces deux options ont des valeures associés. Si j'appele mon scritp avec l'option mais sans specifié une valeur associée, j'ai l'impression que le script n'execute pas les commandes specifiés dans . Pourquoi ?
Merci en avance
Partager