J'ai mon utilitaire de console personnalisé cooltool
avec une liste d'options
fooOption
barOption
Que dois-je faire pour pouvoir bash compléter automatiquement les options en appuyant sur la tab
touche?
Je veux dire que l'utilisateur a tapé
$ ./cooltool foo_
puis pressé tab
. Et alors
$ ./cooltool fooOption _
apparu.
Réponses:
Écrivez un script d'achèvement bash pour
cooltool
. Le package bash-compléte est livré avec des scripts pour de nombreux programmes populaires, que vous pouvez utiliser comme exemples.la source
Le moyen le plus simple consiste à ajouter ce qui suit à votre .bashrc.
Chaque fois que vous tapez
cooltool f[TAB][TAB]
, la_cooltool()
fonction est invoquée. Il déterminera quel est votre mot partiel actuel et déterminera ensuitecompgen
quelles options correspondent. Ceux-ci sont stockés dans un tableau appeléCOMPREPLY
qui est ensuite affiché. Regardezman complete
etman compgen
pour plus de détails.Pour un joli tutoriel, consultez: Écrire votre propre fonction d'achèvement de Bash
la source
Vous voudrez peut-être regarder de plus près à l'intérieur de votre répertoire /etc/bash_completion.d sur votre système.
Vous devriez également lire cette introduction . La deuxième partie de l'introduction est celle dont vous avez besoin.
la source
Voici le code utilisé pour l'achèvement de git bash
la source
En plus de la réponse de Dogbane, vous pouvez également faire:
si vous voulez simplement faire correspondre une liste de mots depuis le début de la chaîne. Il semble que complet et compgen partagent la plupart des options. Je n'ai remarqué que "début de chaîne" correspondant dans les commandes que j'utilise, donc j'ai trouvé intéressant que vous puissiez faire d'autres choses dans la fonction _cooltool comme:
pour correspondre n'importe où dans le nom de l'option.
la source