Outils pour utilisateurs

Outils du site


dev:bash:arguments_et_options_de_script

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
dev:bash:arguments_et_options_de_script [2023/02/10 09:46] – ↷ Nom de la page changé de dev:bash:gestion-argumets-et-options à dev:bash:arguments_et_options_de_script yoanndev:bash:arguments_et_options_de_script [2023/02/10 17:23] (Version actuelle) – Complétion section getopts yoann
Ligne 1: Ligne 1:
 {{tag>dev bash script option argument}} {{tag>dev bash script option argument}}
  
-====== Gestion des arguments et options dans les scripts Bash ======+====== Gestion des options et arguments dans les scripts Bash ======
  
 Les arguments transmis au script bash courant sont accessibles via les variables **$1** à **$n**. La variable **$@** désigne l'ensemble des arguments. Les arguments transmis au script bash courant sont accessibles via les variables **$1** à **$n**. La variable **$@** désigne l'ensemble des arguments.
Ligne 8: Ligne 8:
 **getopts** et **getopt** sont deux moyens similaires mais non identiques pour gérer de façon avancée les options et les arguments passés aux scripts. **getopts** et **getopt** sont deux moyens similaires mais non identiques pour gérer de façon avancée les options et les arguments passés aux scripts.
  
-  * **getopts** est intégré a l’interpréteur **bash**.+  * **getopts** est intégré a l’interpréteur **bash** (primitve).
   * **getopt** est un binaire.   * **getopt** est un binaire.
  
Ligne 27: Ligne 27:
   * La gestions des options courtes ou longues   * La gestions des options courtes ou longues
  
 +===== Utilisation de getopts =====
  
-===== Utilisation de getopt =====+**getopts** est une primitive de Bash: 
 +<code> 
 +type getopts 
 +getopts est une primitive du shell 
 +</code>
  
-Un script d'exemple est disponible au noeud **/usr/share/doc/util-linux/examples/getopt-parse.bash**.+Utilisée avec les commandes **while** et **case**, elle va permettre la gestion des options et de leur argument saisis sur la ligne de commande du script.
  
 +Le détail du fonctionnement de **getopts** est disponible dans l'aide via ''%%help getopts%%''. A chaque appel, **getopts** copie une option et son argument de la ligne de commande et les place dans des variables de travail. La boucle **while** permet d'appeler autant de fois que nécessaire la commande **getopts** afin de parcourir l'ensemble des arguments de la ligne de commande.
 +
 +La commande **case** permet d'associer le comportement souhaité à l'option courante reconnue sur la ligne de commande.
 +
 +La structure générale est donc la suivante:
 <code bash> <code bash>
 +# Mon script
  
 +# Si elle est trouvée sur la ligne de commande,
 +# l'option 'h' est copiée dans la variable de travail opt_name
 +while getopts ":h" opt_name;
 +do
 +  case $opt_name in
 +    h) # affiche l'aide et quitte
 +      echo "Ceci est mon message d'aide"
 +      exit 0;;
 +  esac
 +done
 +
 +
 +echo "Exécution du comportement par défaut..."
 +exit 0
 </code> </code>
  
-===== Utilisation de getopts =====+===== Utilisation de getopt ===== 
 + 
 +Un script d'exemple est disponible au noeud **/usr/share/doc/util-linux/examples/getopt-parse.bash**. 
 + 
  
  
Ligne 42: Ligne 71:
  
   * http://aplawrence.com/Unix/getopts.html   * http://aplawrence.com/Unix/getopts.html
 +  * https://www.redhat.com/sysadmin/arguments-options-bash-scripts
dev/bash/arguments_et_options_de_script.1676022376.txt.gz · Dernière modification : 2023/02/10 09:46 de yoann