Ich dachte, ich würde auch die folgende zusätzliche Erklärung für ein Versagen der Bash-Vervollständigung hinzufügen - sie ist zu lang für einen Kommentar und kann für jemanden nützlich sein, der ein Problem mit der Bash-Vervollständigung hat, da dies vermutlich die 'allgemeine' kanonische Frage ist, auf die sich diese Frage bezieht Alle Duplikate werden referiert.
Auch wenn Sie die entsprechende Zeile in Ihrem .bashrc(wie in der obigen Antwort) und dem bash-completioninstallierten Paket haben, kann die Bash-Vervollständigung immer noch fehlerhaft sein, wenn Sie entweder shopt -s nullgloboder shopt -s failglobin Ihrem .bashrcoder haben .bash_aliases.
Die folgenden Szenarien wurden mit allen Benutzeranpassungen von getestet .bashrcund .bash_aliasesentfernt, um einen fairen Test zu ergeben, wobei die entsprechende Bash-Vervollständigungslinie .bashrcvorhanden und bash-completioninstalliert war.
1) Das erste Szenario ist, wenn Sie shopt -s failglobin Ihrem .bashrcoder haben .bash_aliases.
Beim Versuch, vollständige Verzeichnisse bzw. Dateien zu tabulieren, treten folgende Fehler auf:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Befehle werden jedoch weiterhin erfolgreich ausgeführt.
2) shopt -s nullglobWenn diese Option aktiviert ist, führt der Versuch, ein Verzeichnis oder eine Datei auf der Registerkarte zu vervollständigen, zu einer unvollständigen Auflistung aller Elemente:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Ich habe die Auflistung hier gekürzt, da es sehr lang war und nicht notwendig ist, alles zu reproduzieren.
Wieder funktioniert die Befehlsausführung jedoch weiterhin.
Entfernen Sie also einfach das Problem der Fehler mit der Bash-Vervollständigung shopt -s failgloboder shopt -s nullgloblösen Sie es, vorausgesetzt, Sie haben die entsprechende Zeile in Ihrem .bashrcund bash-completioninstalliert.