[Bash] : Comment scripter pour définir un argument (ou plusieurs) par défaut ?

Pour les débutants en bash, c’est quelque chose qui revient souvent quand on script : comment agir en fonction du nombre d’arguments ou comment prendre un argument par défaut si il n’en existe pas ? ou même setter plusieurs arguments ?

Pas très compliqué, faut juste le savoir la variable « $# » contient le nombre d’arguments passés à votre script. Ainsi il est facile après de faire un contrôle dessus et de demander une valeur ou de définir une valeur par défaut.

Par exemple, demander de rentrer une valeur d’argument :

[ $# -lt 1 ] && echo "Veuillez préciser la valeur d'argument ?"
read $argument

ou setter une valeur par défaut :

[ $# -lt 1 ] && set "argument1 par defaut"
echo $1
#affiche
argument1 par defaut

Rappelons le $1 est le première arguement, $2 le deuxième etc.

Ou définir une liste d’arguments :

[ $# -lt 1 ] && set "argument1 par defaut" "toto est le 2ème"
echo $1
echo $2
#affiche
argument1 par defaut
toto est le 2ème

ou parcourir un fichier en guise d’argument :

[ $# -lt 1 ] && set -- arguments_default.txt

C’est simple de scripter on peut aussi faire ce genre d’opérations d’autres manières mais celle-ci est reconnue comme dans les règles de l’art.

Et si vous vouliez décaller les arguments ? « utilisez shift » pour un décallage de 1 ou « shift 2 » pour un décallage de 2 etc.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s