Les paramètres positionnels font très bien l’affaire ...dans un premier temps :) Bon, sous réserve de se souvenir de l’ordre et qu’il y en ait pas trop... Et je pense que onze c’est beaucoup. Mes trucs quand j’utilise les paramètres positionnels dans mes scripts :
Faut pas qu’il y en ait trop (j’essaye de ne pas dépasser trois) ; c’est plus facile pour la mémoire et pour l’aide.)
Je les renseigne dans une cartouche de commentaire en début (je dois avoir quelques exemples sur LinuxFr) et je prévois un message d’aide (du basique : juste échouer dès le début avec le rappel de la syntaxe quand on n’a pas tous les arguments ou que ceux-ci ne correspondent pas aux motifs attendus...)
À partir d’un certain nombre (strictement plus de deux), j’essaie de prévoir un mode interactif : si le Nième paramètre est absent, faire un prompt et lire la réponse plus prévoir de pouvoir s’arrêter.
Je classe les paramètres par ordre d’importance avec les obligatoires au début, puis les optionnels (avec une valeur par défaut précisée dans l’aide)
Dès que l’ordre doit être libre ou quand il y a beaucoup de paramètres (qui implique le premier point pour la tranquillité d’esprit), go getops parce-que je fais essentiellement du POSIX. Si on n’est pas concerné par ce dernier point, autant utiliser le truc plus évolué de son shell (soit getop pour bash —mais la commande est disponible aussi via util-linux pour les autres interpréteurs—, zparseopts pour zsh, le getops de ksh93, etc.) avec le support des options longues et autres détails.
Perl a un module Getopt::Long inclus de base un peu partout.
"It is seldom that liberty of any kind is lost all at once." ― David Hume
[^] # Re: vs argbash
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal Args parser pour shell. Évalué à 5.
Les paramètres positionnels font très bien l’affaire ...dans un premier temps :) Bon, sous réserve de se souvenir de l’ordre et qu’il y en ait pas trop... Et je pense que onze c’est beaucoup. Mes trucs quand j’utilise les paramètres positionnels dans mes scripts :
Dès que l’ordre doit être libre ou quand il y a beaucoup de paramètres (qui implique le premier point pour la tranquillité d’esprit), go
getopsparce-que je fais essentiellement du POSIX. Si on n’est pas concerné par ce dernier point, autant utiliser le truc plus évolué de son shell (soitgetoppour bash —mais la commande est disponible aussi viautil-linuxpour les autres interpréteurs—,zparseoptspour zsh, legetopsde ksh93, etc.) avec le support des options longues et autres détails.Perl a un module
Getopt::Longinclus de base un peu partout."It is seldom that liberty of any kind is lost all at once." ― David Hume