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.