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.