Pensé que también agregaría la siguiente explicación adicional para una falla en la finalización de bash: es demasiado largo para un comentario y puede ser útil para alguien que tiene un problema con la finalización de bash, ya que presumiblemente esta es la pregunta canónica 'general' a la que Todos los duplicados son referidos.
Incluso si tiene la línea apropiada en su .bashrc(como en la respuesta anterior) y el bash-completionpaquete instalado, la finalización de bash puede funcionar mal si tiene shopt -s nullglobo shopt -s failgloben su .bashrco .bash_aliases.
Los siguientes escenarios se probaron con todas las personalizaciones de los usuarios .bashrcy se .bash_aliaseseliminaron para proporcionar una prueba justa, con la línea de finalización de bash apropiada en el .bashrcpresente e bash-completioninstalada.
1) El primer escenario es cuando tienes shopt -s failgloben tu .bashrco .bash_aliases.
Al intentar tabular directorios y archivos completos respectivamente, se producirán estos errores:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Sin embargo, los comandos aún se completarán con éxito.
2) Con shopt -s nullglobhabilitado, intentar tabular un directorio o un archivo llevará a todo lo que aparece en la lista, sin finalización:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
He acortado el listado aquí, ya que era muy largo y no era necesario reproducirlo todo.
Una vez más, la finalización del comando seguirá funcionando sin embargo.
Por lo tanto, simplemente eliminar shopt -s failglobo shopt -s nullglobtambién podría resolver el problema de los errores con la finalización de bash, suponiendo que tenga la línea adecuada en su .bashrce bash-completioninstalada.