J'ai pensé ajouter également l'explication suivante pour un échec de complétion de bash - elle est trop longue pour un commentaire et peut être utile pour quelqu'un qui a un problème avec la complétion de bash, car c'est apparemment la question canonique 'générale' à laquelle toutes les doublons renvoient.
Même si vous avez la ligne appropriée dans votre .bashrc
(comme dans la réponse ci-dessus) et le package bash-completion
installé, la complétion de bash peut toujours dysfonctionner si vous avez soit shopt -s nullglob
ou shopt -s failglob
dans votre .bashrc
ou .bash_aliases
.
Les scénarios suivants ont été testés avec toutes les personnalisations de l'utilisateur de .bashrc
et .bash_aliases
supprimées pour un test équitable, avec la ligne de complétion de bash appropriée dans .bashrc
et avec bash-completion
installé.
1) Le premier scénario est lorsque vous avez shopt -s failglob
dans votre .bashrc
ou .bash_aliases
.
Lorsque vous essayez de compléter par tabulation des répertoires et des fichiers respectivement, ces erreurs se produiront :
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Cependant, les commandes se compléteront toujours avec succès.
2) Avec shopt -s nullglob
activé, en essayant de compléter par tabulation un répertoire ou un fichier, tout sera listé, sans complétion :
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
J'ai raccourci la liste ici, car elle était très longue et pas nécessaire de tout reproduire.
Encore une fois, la complétion des commandes fonctionnera toujours cependant.
Ainsi, simplement en supprimant shopt -s failglob
ou shopt -s nullglob
pourrait également résoudre le problème d'erreurs avec la complétion de bash, en supposant que vous avez la ligne appropriée dans votre .bashrc
et que bash-completion
est installé.