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-completion
paquete instalado, la finalización de bash puede funcionar mal si tiene shopt -s nullglob
o shopt -s failglob
en su .bashrc
o .bash_aliases
.
Los siguientes escenarios se probaron con todas las personalizaciones de los usuarios .bashrc
y se .bash_aliases
eliminaron para proporcionar una prueba justa, con la línea de finalización de bash apropiada en el .bashrc
presente e bash-completion
instalada.
1) El primer escenario es cuando tienes shopt -s failglob
en tu .bashrc
o .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 nullglob
habilitado, 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 failglob
o shopt -s nullglob
también podría resolver el problema de los errores con la finalización de bash, suponiendo que tenga la línea adecuada en su .bashrc
e bash-completion
instalada.