El autocompletado de bash falla con comodín

El autocompletado de bash falla con comodín

Usando bashen este este sistema:

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

La secuencia:

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

Muestra:

test1.txt test2.txt test3.txt

debajo de la línea de comando.

Así es como espero bashque se comporte el autocompletado.

Pero cuando escribo:

ls test* [tab][tab]

(esperando el mismo resultado) solo obtengo (es decir, autocompletar exclusivamente se expande a):

test1.txt

Por lo tanto, el *comodín asterisco ( ) al final lo convierte en test[23].txt"inalcanzable". Estoy bastante seguro de que las dos secuencias solían dar los mismos resultados en versiones anteriores de bash, al menos en mi computadora.

¿Alguien más tiene este problema? ¿Es una configuración predeterminada (por ejemplo, en Debian 8) que se puede cambiar? (Intenté configurar y desarmar diferentes parámetros de Shell, shoptpero fue en vano).

Respuesta1

Bueno, la solución que me funciona es esta: en ~/.bashrctenía las líneas

# 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

Ese es el bloque que pensé que se encarga del autocompletado. Sin embargo, después de comentarlo e iniciar un nuevo shell, no solo funciona, sino que ha vuelto a la forma a la que estaba acostumbrado.

Todavía no estoy seguro de qué ifsignifica la cláusula -, pero no intentaré arreglarla mientras funcione.

información relacionada