Bonjour !
J'essaie désespérément de passer un paramètre et son argument à mon script.
La partie intéressante est celle-ci :
Donc, logiquement, en passant l'option [-c argument], ma variable $CHECKER ne devrait pas être vide.
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
Or, l'appel au script par : ./MyScript.sh -c 'Monitor soft'
me donne (avec un set -x) :
Donc : il me trouve bien mon bon argument, mais $OPTARG est vide et n'initialise pas la variable CHECKER !+ getopts :c(checker):s(site):m(machine): option
+ CHECKER=
+ getopts :c(checker):s(site):m(machine): option
+ echo 2
2
+ echo
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 :
-> Je ne sais plus lire ?+ getopts :c(checker):s(site):m(machine): option
+ echo option ? invalide
option ? invalide
+ getopts :c(checker):s(site):m(machine): option
+ echo 2
Partager