Estranha diferença no comportamento do bash entre sistemas

Estranha diferença no comportamento do bash entre sistemas

Tenho dois sistemas, um computador Ubuntu e um tablet Android. Eu criei e configurei o bash para Android para ser usado no adb, então é a mesma versão do meu bash do Ubuntu, e eles usam principalmente o mesmo bashrc e configuração, e exatamente as mesmas opções definidas pelo shopt.

No entanto, há uma pequena diferença em que o bash do Android se comporta como eu esperava quando tento completar algo usando uma variável nele, mas o bash do Ubuntu não.

 #Android
 ls $HOME/loc<tab> => ls $HOME/local #As expected

Basicamente, a variável é levada em consideração no preenchimento. Mas então

#Ubuntu
ls $HOME/loc<tab> => ls \$HOME/loc #Undesired behavior.

A lista de opções é a seguinte e é a mesma em ambas as versões do bash.

autocd:checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:progcomp:promptvars:sourcepath

O que pode estar fazendo a versão do Ubuntu escapar do $ em vez de usá-lo para conclusão como na compilação do Android? O que posso fazer para que ambos funcionem da mesma maneira? Qualquer ajuda será muito apreciada.

Responder1

O pacote bash 4.2-0ubuntu3 apresenta este problema, conforme este bug:

https://bugs.launchpad.net/ubuntu/+source/bash/+bug/778627/

Aparentemente, isso é um problema com o próprio bash, então agora sua opção é baixar e compilar uma cópia upstream do bash para rodar em sua máquina.

informação relacionada