Bonjour,

Dans mon script "test.sh" je souhaiterais verifier les options et leurs valeures associés avec la function getopts. Voila le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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