No Ubuntu 14.04, recebo o horrível comportamento de expansão do primeiro jogo por padrão, mas acho que é culpa de algo na conclusão programável.
Depois de um shopt -u progcomp
, obtenho o bom comportamento de expansões de lista.
Seu comportamento de shell de login versus não-login provavelmente é devido à obtenção de .bash_profile
e /etc/profile
, ou não. (Ou seu shell de login NÃO obtém /etc/bash.bashrc
ou .bashrc
, se seu perfil não der origem a eles / eles.)
update: rastreou o bug na conclusão programável: ativou set -x
e examinou a saída de todos os comandos que foram executados depois de atingir TAB
. Encontrado onde a expressão glob se transformou em uma lista e descobriu que em /usr/share/bash-completion/bash_completion
O problema estava aqui: (procure por xspec para encontrar essas linhas)
xspec=${1:+"!*.@($1|${1^^})"}
x=$( compgen -f -X "$xspec" -- "$quoted" ) &&
"$quoted"
estava sem as aspas, por isso estava sendo expandido lá, nas funções do shell de conclusão do processamento. $quoted
é usado dentro de aspas duplas em outras partes do script, então estou bastante confiante de que deveria ser citado, e esse foi o jeito certo de corrigir isso.
reportado como link , esperamos que seja corrigido e faça o seu caminho em todas as distros em breve.