bash autocomplete falha com curinga

bash autocomplete falha com curinga

Usando bashneste sistema:

Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (29/02/2016) x86_64 GNU/Linux

A sequência:

cd /tmp
touch test1.txt && touch test2.txt && touch test3.txt
ls test [tab][tab]

Mostra:

test1.txt test2.txt test3.txt

abaixo da linha de comando.

É assim que espero que basho preenchimento automático se comporte.

Mas quando eu digito:

ls test* [tab][tab]

(esperando o mesmo resultado) eu só consigo (ou seja, o preenchimento automático se expande exclusivamente para):

test1.txt

Portanto, o curinga asterisco ( *) no final torna test[23].txt'inacessível'. Tenho certeza de que as duas sequências davam os mesmos resultados nas versões anteriores do bash - pelo menos no meu computador.

Alguém mais tem esse problema? É uma configuração padrão (por exemplo, no Debian 8) que pode ser alterada? (Tentei definir e desativar diferentes parâmetros do shell, shoptmas sem sucesso).

Responder1

Bem, a solução que funciona para mim é esta: ~/.bashrceu tinha as falas

# 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

Esse é o bloco que pensei que cuida do preenchimento automático. Depois de comentar e iniciar um novo shell, não apenas funciona, mas voltou a ser como estou acostumado!

Ainda não tenho certeza do que a ifcláusula - significa, mas não tentarei consertar enquanto funciona.

informação relacionada