Bonjour,

Voulant améliorer un script, je souhaite passer par l'utilisation d'options, via getopts.
Jusqu'à présent, j'utilisais des paramètres fixes, c'est à dire que script prenait 3 paramètres et fonctionnait très bien.
Depuis que j'essaye de mettre en place getopts, il ignore celui (pas très contrariant) :
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
#!/bin/bash
 
EXPECTED_ARGS=3
E_BADARGS=65
ID=""
 
while getopts :i: option
do
    case "$option" in
    i)  ID=$OPTARG
         ;;
    :) echo "id non present"
	exit 4
        ;;
    \?) echo "Option incorrect"
        exit 5
        esac
done
 
if [ $# -lt $EXPECTED_ARGS ]
then
  echo "Usage: $0 nom user password"
  exit $E_BADARGS
fi
 
if [ -z $ID]
  then ID="dfghj"
fi
 
echo "Param 1 : $1"
echo "Param 2 : $2"
echo "Param 3 : $3"
echo "Param ID : $ID"
 
exit
Comme vous pouvez le voir, j'essaye juste avec un paramètre optionel i, mais dans l'absolu j'aimerais que le paramètre soit id (enfin, plus d'une lettre, sans pour autant avoir le double tiret).
Merci