Existe-t-il un moyen pour que bash sache exactement ce qu'il faut afficher lorsque vous doublez la tabulation? Par exemple, j'ai un script python scpy
qui nécessite quelques arguments. Par exemple comme apt-get
, si votre double tabulation vous donne
autoclean build-dep clean dselect-upgrade purge source upgrade autoremove check dist-upgrade install remove update
Existe-t-il un moyen de le faire pour vos propres scripts/programmes ? Dois-je encapsuler mon script python dans un script bash ?
Réponse acceptée :
La façon la plus simple de le faire est d'inclure un script shell dans /etc/bash_completion.d/
. La structure de base de ce fichier est une fonction simple qui effectue la complétion puis l'invocation de complete
qui est un bash intégré. Plutôt que d'entrer dans les détails sur l'utilisation de complete
, je vous suggère de lire An Introduction to Bash Completion. La partie 1 couvre les bases et la partie 2 explique comment écrire un script de complétion.
Une description plus dense de l'achèvement bash peut être trouvée dans la section « Achèvement programmable » de man bash
(vous pouvez taper "/Programmable Completion" puis appuyer plusieurs fois sur "n" pour y arriver rapidement. Ou, si vous avez de la chance, "g 2140 RETURN").