La vis cachée de getopt

Article suivant: Délégation d'événement en js
Article précédent: Taguer vos classes, cataloguées-les

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.

Revenir en haut