Surprise! le shell suggère des commutateurs de ligne de commande

J’ai remarqué que le shell bash peut suggérer des options de ligne de commande pour votre commande.

Tapez simplement votre commande, un tiret (-) et un onglet de type. Le shell vous montrera les commutateurs disponibles.

Par exemple, essayez:

andy@andyx:~$ java - 

et appuyez sur la touche – Surprise!

Capture d'écran

La question est:

Comment puis-je interfacer avec cette fonctionnalité. Par exemple, si j’écris un programme à exécuter depuis la console, quelle est l’API pour indiquer au shell quels commutateurs sont disponibles?

Vous avez découvert la fonction d’ achèvement programmable de Bash.

Voir:

 $ man bash 

En particulier, la section intitulée “READLINE” et la sous-section “Achèvement programmable”

FYI: Dans Ubuntu et / ou Debian, les scripts sont à /etc/bash_completion.d/