Bonjour,
Je viens demander quelques explications a propos du shift lie a getopts, car je souhaite parser mes options (facultative et une avec argument) et me decaller a chaque fois afin de pouvoir appeler mes fonctions sans galerer avec $1 $2 $3 etc ...
Voici ce que j'ai fait pour le moment
Il fonctionne lorsque je met que 1option, mais les 2 combine j'ai la fonction usage qui s'affiche ...
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 usage() { echo "Usage : $0 [-k] [-f <db_file>] (put (<clef> | $<clef>) (<valeur> | $<clef>) |" echo " del (<clef> | $<clef>) [<valeur> | $<clef>] |" echo " select [<expr> | $<clef>])" exit 1 } while getopts ":kf:" opt do case "$opt" in k) IS_K_OPT=1; shift $(($OPTIND-1)) ;; f) DBFILE=$OPTARG shift $(($OPTIND-1)) ;; :) echo "Missing parameter for $OPTARG" exit 1 ;; \?) usage exit 1 ;; esac done case "$1" in put) put "$DBFILE" "$2" "$3" ;; del) del "$DBFILE" "$2" "$3" ;; select) selectt "$DBFILE" "$2" ;; *) usage ;; esac
bref je suis un peu paume, il y a moyen de expliquer mon erreur ? merci
Partager