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-completion
installierten Paket haben, kann die Bash-Vervollständigung immer noch fehlerhaft sein, wenn Sie entweder shopt -s nullglob
oder shopt -s failglob
in Ihrem .bashrc
oder haben .bash_aliases
.
Die folgenden Szenarien wurden mit allen Benutzeranpassungen von getestet .bashrc
und .bash_aliases
entfernt, um einen fairen Test zu ergeben, wobei die entsprechende Bash-Vervollständigungslinie .bashrc
vorhanden und bash-completion
installiert war.
1) Das erste Szenario ist, wenn Sie shopt -s failglob
in Ihrem .bashrc
oder 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 nullglob
Wenn 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 failglob
oder shopt -s nullglob
lösen Sie es, vorausgesetzt, Sie haben die entsprechende Zeile in Ihrem .bashrc
und bash-completion
installiert.