0Pricing
DevOps Bootcamp · Leçon

Arguments et options des scripts ($@, $#, getopts)

Apprenez à transmettre des arguments à vos scripts et à analyser les options de la ligne de commande à l’aide de variables spéciales et de « getopts ».

Arguments et options des scripts ($@, $#, getopts) est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.

Arguments de script : pourquoi les utiliser ?

Avez-vous déjà utilisé une commande comme ls -l ou cp file1 file2 ? -l, file1 et file2 sont tous des arguments ! Ils indiquent à la commande quoi faire ou sur quoi agir.

Dans les scripts Bash, les arguments rendent vos scripts flexibles. Au lieu de coder des valeurs en dur, votre script peut accepter une entrée directement depuis la ligne de commande lors de son exécution.

Accéder aux arguments positionnels

Lorsque vous exécutez un script avec des arguments, Bash les affecte automatiquement à des variables spéciales appelées paramètres positionnels.

  • Le premier argument est $1.
  • Le deuxième argument est $2.
  • Et ainsi de suite, jusqu'à $9.

Pour les arguments au-delà du neuvième, vous devez utiliser des accolades, comme ${10}, ${11}, etc. Ces variables contiennent les valeurs transmises à votre script.

Démonstration : arguments positionnels

Voyons comment accéder à ces arguments dans un script. Enregistrez-le sous le nom greet.sh et exécutez-le avec ./greet.sh Alice Bob.

#!/bin/bash

echo "Hello, $1!"
echo "Welcome, $2."
echo "The third argument (if any) is: $3"

`$0` et `$#` : informations sur le script

Bash fournit quelques autres variables spéciales qui vous donnent des informations sur le script lui-même et sur ses arguments :

  • $0 : contient le nom du script en cours d'exécution. Cette variable est utile pour les messages d'erreur ou la journalisation.
  • $# : contient le nombre total d'arguments positionnels transmis au script.

Ces variables contribuent à rendre vos scripts plus robustes et plus faciles à utiliser.

Démonstration : `$0` et `$#`

Exécutez ce script avec différents nombres d'arguments, par exemple ./info.sh one two three ou simplement ./info.sh.

#!/bin/bash

echo "Script name: $0"
echo "Number of arguments received: $#"

`$@` ou `$*` : tous les arguments

Vous devez parfois faire référence à tous les arguments en même temps. Bash propose deux possibilités :

  • $@ : se développe en arguments distincts. Entre guillemets doubles ("$@"), chaque argument reste un mot distinct, même s'il contient des espaces. Cette forme est généralement recommandée pour les boucles.
  • $* : se développe en une seule chaîne contenant tous les arguments. Entre guillemets doubles ("$*"), tous les arguments sont regroupés en un seul mot, séparés par le premier caractère de IFS (séparateur de champs interne, généralement une espace).

Utilisez toujours "$@" lorsque vous parcourez des arguments afin de préserver les espaces !

Démonstration : parcourir avec `"$@"`

Ce script montre comment "$@" gère correctement les arguments contenant des espaces. Exécutez-le ainsi : ./loop_args.sh hello "world wide" web

#!/bin/bash

echo "Processing arguments with \"$@\":"
for arg in "$@"; do
  echo "  Argument: [$arg]"
done

echo "\nProcessing arguments with \"$*\":"
for arg in "$*"; do
  echo "  Argument: [$arg]"
done

Options : au-delà des arguments positionnels

Les arguments positionnels sont parfaits dans les cas simples, mais que faire si votre script a besoin d'options facultatives ou de paramètres nommés, comme -v pour le mode détaillé ou -f filename ?

C'est là qu'interviennent les options de la ligne de commande. Elles rendent les scripts plus flexibles et plus faciles à utiliser, en permettant aux utilisateurs de définir les paramètres dans n'importe quel ordre.

Bash fournit la commande getopts, conçue spécialement pour analyser ce type d'options.

Syntaxe de `getopts` : `optstring`

La syntaxe de base de getopts est la suivante : getopts optstring variable.

  • optstring : chaîne de caractères contenant les caractères d'option valides. Si une option nécessite un argument (comme -f filename), faites suivre le caractère de deux-points (par exemple f:).
  • variable : nom d'une variable dans laquelle getopts stockera le caractère de l'option en cours de traitement (par exemple opt).

getopts définit également OPTARG pour les arguments des options et OPTIND pour l'indice de l'argument suivant.

Démonstration : `getopts` de base

Ce script traite les options -v (mode détaillé) et -f (fichier). Essayez de l'exécuter : ./options.sh -v -f mydata.txt -x ou ./options.sh -vf mydata.txt

#!/bin/bash

while getopts "vf:" opt; do
  case $opt in
    v)
      echo "Verbose mode enabled."
      ;;
    f)
      echo "File specified: $OPTARG"
      ;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      ;;
  esac
done

Vérification rapide : variables d'arguments

Considérez le script suivant et la manière dont il est exécuté :

#!/bin/bash
echo "Script: $0"
echo "Count: $#"
for arg in "$@"; do
  echo "Arg: $arg"
done

Si vous exécutez : ./myscript.sh "Hello World" 123

Quelle sera la sortie ?

Récapitulatif : arguments et options

Excellent travail ! Vous avez appris à rendre vos scripts Bash beaucoup plus polyvalents :

  • Arguments positionnels : utilisez $1, $2, etc. pour accéder directement aux arguments.
  • Variables spéciales : $0 pour le nom du script, $# pour le nombre d'arguments et "$@" pour parcourir tous les arguments en toute sécurité.
  • Options de la ligne de commande : utilisez getopts pour analyser les options nommées (comme -v) et leurs arguments (-f filename), afin de rendre vos scripts plus robustes et plus faciles à utiliser.

Entraînez-vous à les utiliser dans vos propres scripts pour créer des outils de ligne de commande puissants et flexibles !

Questions Fréquemment Posées

La leçon « Arguments et options des scripts ($@, $#, getopts) » est-elle gratuite ?

Oui — le texte complet de « Arguments et options des scripts ($@, $#, getopts) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Arguments et options des scripts ($@, $#, getopts) » ?

Apprenez à transmettre des arguments à vos scripts et à analyser les options de la ligne de commande à l’aide de variables spéciales et de « getopts ». Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?

Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Arguments et options des scripts ($@, $#, getopts) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?

Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Structures de boucles (for, while)
  2. Fonctions dans les scripts Bash
  3. Arguments et options des scripts ($@, $#, getopts)
  4. L’instruction case et la correspondance de motifs
← Retour à DevOps Bootcamp