Eu também gostaria de acrescentar a seguinte explicação adicional para uma falha na conclusão do bash - é muito longo para um comentário e pode ser útil para alguém que tem um problema com a conclusão do bash, já que presumivelmente esse é o canônico 'geral' pergunta para a qual todas as duplicatas são referidas.
Mesmo que você tenha a linha apropriada em .bashrc
(como na resposta acima) e o pacote bash-completion
instalado, a conclusão do bash ainda poderá falhar se você tiver shopt -s nullglob
ou shopt -s failglob
no seu .bashrc
ou .bash_aliases
.
Os cenários a seguir foram testados com todas as personalizações de .bashrc
e .bash_aliases
removidas para dar um teste justo, com a linha de conclusão bash apropriada em .bashrc
present e com bash-completion
instalado.
1) O primeiro cenário é quando você tem shopt -s failglob
no seu .bashrc
ou .bash_aliases
.
Ao tentar listar diretórios e arquivos completos, respectivamente, esses erros ocorrerão:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
No entanto, os comandos ainda serão concluídos com êxito.
2) Com shopt -s nullglob
habilitado, a tentativa de tabular um diretório completo ou um arquivo levará a tudo listado, sem conclusão:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Interrompi a listagem aqui, pois era muito longa e não era necessário reproduzir tudo.
Mais uma vez, a conclusão do comando continuará a funcionar no entanto.
Portanto, apenas remover shopt -s failglob
ou shopt -s nullglob
também pode resolver o problema de erros com a conclusão do bash, supondo que você tenha a linha apropriada em .bashrc
e bash-completion
instalado.