La vis cachée de getopt
Voici une petite information très mal connue et peu utilisée du getopt
de la lib C et de la commande shell. Ainsi que Boost.Program_options
. Parce que boost c’est bien :p.
Les noms des options longues n’ont pas besoin d’être écrites entièrement.
function parsecmd()
{
getopt -o '' --long \
option-longue,option-encore-plus-longue,une-autre-option: \
-n 'example' -- "$@"
}
parsecmd --option-l --u plop bidule
Donne
--option-longue --une-autre-option 'plop' -- 'bidule'
La commande shell getopt
est un peu plus souple que les autres. Si ambiguïté, la première option correspondante sera sélectionnée. Si l’option -a
existe ce n’est plus le cas et le code d’erreur 1
est retourné ainsi qu’un petit message listant les options possibles. Mais avec -a
les options longues peuvent commencer par un simple tiret.
La plupart des commandes Linux utilisant getopt
, cette astuce peut s’utiliser assez souvent.
Commentaires
Aucun commentaire pour le moment :'(
Le système de commentaire passe par les issues de github et aucun n'est associée au billet. Vous pouvez faire votre commentaire dans une issue qui a comme titre celui du billet. Je me chargerai de les associer.