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

Print Friendly, PDF & Email

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.

Découvrez  [Bash] : lister et calculer les fréquences des erreurs apache depuis les logs... et un peu de SEO