Bonjour !

J'essaie désespérément de passer un paramètre et son argument à mon script.
La partie intéressante est celle-ci :
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
while getopts ":c(checker):s(site):m(machine):" option
do
	case "$option" in
	c)
		CHECKER="$OPTARG"
		;;
	s)
		SITE="$OPTARG"
		;;
	m)
		MACHINE="$OPTARG"
		;;
	[?])	
		echo option "$option"  invalide
		;;
	esac
done
 
echo $#
echo $CHECKER
Donc, logiquement, en passant l'option [-c argument], ma variable $CHECKER ne devrait pas être vide.
Or, l'appel au script par : ./MyScript.sh -c 'Monitor soft'
me donne (avec un set -x) :
+ getopts :c(checker):s(site):m(machine): option
+ CHECKER=
+ getopts :c(checker):s(site):m(machine): option
+ echo 2
2
+ echo
Donc : il me trouve bien mon bon argument, mais $OPTARG est vide et n'initialise pas la variable CHECKER !
Qu'est-ce que je fais de si mal, à votre avis ?

PS : question subsidiaire : d'après le man de getopt, ma syntaxe devrait permetttre d'utilier l'option longue --checker, cependant, si je teste un ./MyScript.sh --checker 'Monitor soft', j'obtiens un maigre :
+ getopts :c(checker):s(site):m(machine): option
+ echo option ? invalide
option ? invalide
+ getopts :c(checker):s(site):m(machine): option
+ echo 2
-> Je ne sais plus lire ?