Sommaire

Exploitation avancée des arguments

Bien qu’il soit plus simple de se contenter d’arguments fixes ordonnés, on peut vouloir développer un script plus flexible, surtout s’il est amené à être utilisé par d’autres personnes. Dans ce cas, il peut être utile de proposer des arguments et options, à l’image de ce que l’on trouve avec d’autres commandes.

Deux commandes peuvent remplir ce rôle :

  • getopt, une commande externe non normalisée, qui a l’avantage de supporter les options longues sous Linux, mais dont le fonctionnement n’est pas identique sur tous les UNIX - notamment, certaines implémentations ne supportent pas les arguments contenant des espaces.

  • getopts, une commande du shell normalisée POSIX qui a l’inconvénient de ne pas supporter les options longues, mais qui fonctionne de la même manière sur tous les systèmes UNIX compatibles POSIX.

Cette section abordera la commande getopts en raison de sa compatibilité POSIX. Celle-ci propose les fonctionnalités suivantes :

  • Les options inconnues sont ignorées (avec affichage d’un message d’erreur).

  • Les options combinées (« -ab » sont interprétées comme si elles étaient séparées (« -a -b »).

  • Chaque option peut nécessiter un argument.

On peut choisir d’arrêter le script si les arguments sont mauvais ou de le continuer ...