Ao contrário a outra resposta , este problema específico é provavelmente um resultado direto do uso do bash -completação. O pacote de conclusão do bash tem vários bugs (como indicado em esta resposta U & amp; L sobre um problema semelhante, por exemplo ).
Se eu comentar esta seção no meu .bashrc
:
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
e inicie uma nova instância do bash, então recebo:
$ echo *o*<tab><tab>
foo food foo.sh
$ echo *o*
E, em seguida, se eu gerar o script /usr/share/bash-completion/bash_completion
como estava no .bashrc
:
$ . /usr/share/bash-completion/bash_completion
$ echo foo
O *o*
foi imediatamente preenchido automaticamente para foo
sem mostrar as outras correspondências.
Estou usando o 16.04, a propósito. Não sei se isso foi corrigido em versões mais recentes.
$ dpkg-query --show --showformat='${Package} ${version}\n' bash bash-completion
bash 4.3-14ubuntu1.2
bash-completion 1:2.1-4.2ubuntu1.1