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-completion
package installé, la finalisation de bash peut tout de même ne pas fonctionner correctement si vous en avez un, 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 .bashrc
et .bash_aliases
supprimés pour donner un test correct, avec la ligne d'achèvement de bash appropriée .bashrc
actuellement et bash-completion
installée.
1) Le premier scénario est quand vous avez shopt -s failglob
dans votre .bashrc
ou .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 nullglob
enabled, 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 failglob
ou en shopt -s nullglob
résolvant le problème des erreurs d’achèvement en mode bash, vous devez donc disposer de la ligne appropriée .bashrc
et l’ bash-completion
installer.