Et comment fonctionne-t-il également les alias auto-complets?
la source
Et comment fonctionne-t-il également les alias auto-complets?
En fonction de la commande:
/etc/bash_completion.d/*
(ou à un emplacement différent sur certains systèmes). Ces fonctions sont enregistrées avec les fonctions intégrées (par exemple, indique à bash d'appeler la fonction lorsque vous appuyez sur une commande). Ils utilisent la fonction intégrée pour dire à bash «voici les compléments possibles».complete
complete -F _find find
_find
Tabfind
compgen
--help
et analysera le résultat. De telles commandes peuvent être enregistrées avec les fonctions complete
intégrées, par exemple complete -F _longopt ls
. _longopt
est en fait une fonction de génération d'achèvement, qui analyse la sortie d'une commande plutôt que d'utiliser une liste fixe. (Il existe d'autres fonctions d'achèvement plus spécialisées qui analysent le résultat d'une commande pour générer des achèvements possibles; recherchez /etc/bash_completion.d/*
des exemples.)complete
intégré a des options pour cela, par exemple -A
pour les alias.Regardez le fichier
/ etc / bash_completion
et observez les fichiers du répertoire:
/etc/bash_completion.d
Vous trouverez la réponse.
La prise en charge de l’achèvement de bash est fournie dans Debian et Ubuntu par le paquet d’achèvement de bash . Vous devez également généralement supprimer les commentaires suivants /etc/bash.bashrc
et / ou rechercher .bashrc
les fichiers d’achèvement de bash. Ce qui suit est de /etc/bash.bashrc
:
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
pour que cela fonctionne. J'ai l'habitude de le commenter dans les deux cas. La gestion des shells de connexion / interactifs dans Debian est un peu un fouillis.
Des commentaires similaires s’appliquent vraisemblablement à d’autres distributions, bien qu’ils permettent peut-être de rechercher les sources par défaut.