Comment vérifier le nombre d'arguments d'un script bash ?

Il est possible, lorsque l'on développe un script Bash, de contrôler le nombre d'arguments que renseignera l'utilisateur.

Il est possible, lorsque l'on développe un script Bash, de contrôler le nombre d'arguments que renseignera l'utilisateur.

Pour effectuer ce contrôle, on utilisera l'opérateur "$#", qui correspond au nombre d'arguments du script. On utilisera un opérateur arithmétique pour effectuer la comparaison. Pour réaliser le test, il y a deux possibilités : utiliser les crochets (il faut bien un espace entre les crochets et le test) ou alors l'opérateur test.

if [ "$#" -ne 1 ]; then
 echo "Le nombre d'arguments est invalide"
fi
if test "$#" -ne 1; then
 echo "Le nombre d'arguments est invalide"
fi

Il existe d'autres opérateurs dans le langage Bash. L'opérateur "[[ ]]" évalue les expressions sans effectuer la séparation des mots et sans lire les chemins. Dans ce cas, il est possible de se passer des guillemets pour le test :

if [[ $# -ne 1 ]]; then
 echo "Le nombre d'arguments est invalide"
fi

L'opérateur "(( ))" est utilisé pour évaluer les expressions arithmétiques. Voici un exemple pour contrôler qu'un script a bien deux arguments et que ceux-ci correspondent à un modèle précis :

[[ ($# -eq 1 || ($# -eq 2 && $2 == <modèle pour le deuxième argument>)) && $1 =~ <modèle pour le premier argument> ]]

Consultez le manuel du langage Bash pour trouver toutes les informations dont vous avez besoin :

ttp://www.gnu.org/software/bash/manual/bash.html.

Divers