Je pensais également ajouter l'explication supplémentaire suivante pour un échec d'achèvement de Bash - c'est trop long pour un commentaire et peut être utile pour quelqu'un qui a un problème avec l'achèvement de Bash, car il s'agit vraisemblablement de la question canonique «générale» à laquelle tous les doublons sont référés.
Même si vous avez la ligne appropriée dans votre .bashrc(comme dans la réponse ci-dessus) et le bash-completionpackage installé, la finalisation de bash peut tout de même ne pas fonctionner correctement si vous en avez un, shopt -s nullglobou shopt -s failglobdans votre .bashrcou .bash_aliases.
Les scénarios suivants ont été testés avec toutes les personnalisations de l'utilisateur .bashrcet .bash_aliasessupprimés pour donner un test correct, avec la ligne d'achèvement de bash appropriée .bashrcactuellement et bash-completioninstallée.
1) Le premier scénario est quand vous avez shopt -s failglobdans votre .bashrcou .bash_aliases.
Lorsque vous essayez de tabuler des répertoires et des fichiers complets, respectivement, ces erreurs se produisent:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Cependant, les commandes se termineront toujours avec succès.
2) Avec shopt -s nullglobenabled, essayer de compléter un répertoire ou un fichier mènera à la liste de tous les éléments, sans aucun achèvement:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
J'ai coupé la liste ici, car c'était très long et pas nécessaire de tout reproduire.
Encore une fois, l’achèvement de la commande fonctionnera toujours.
En supprimant shopt -s failglobou en shopt -s nullglobrésolvant le problème des erreurs d’achèvement en mode bash, vous devez donc disposer de la ligne appropriée .bashrcet l’ bash-completioninstaller.