É algo com a versão bash que vem com o Ubuntu 12.04.
Consegui compilar o bash a partir do código-fonte para obter minha versão bash até 4.2.37, o que resolveu o problema.
Usando o Ubuntu 12.04. Quando estou digitando um caminho no terminal que começa com uma referência de variável env
, clico na guia para concluir uma palavra e ela escapa da $
na referência da variável env
. Como resultado, tenho que continuar voltando para o início da linha e removendo a barra invertida para que eu possa continuar navegando em uma árvore.
Antes da guia:
user@test:~$ $HOME/Docum
Após a aba:
user@test:~$ $HOME/Documents/
Meu $ HOME / .bashrc tem o material "bash_completion" ativado.
É algo com a versão bash que vem com o Ubuntu 12.04.
Consegui compilar o bash a partir do código-fonte para obter minha versão bash até 4.2.37, o que resolveu o problema.
Você mencionou nos comentários que seu problema real não estava com '$ HOME'. Isso é muito importante, já que é importante se é uma variável de ambiente ou não.
O Bash irá completar as possíveis variáveis de ambiente primeiro se você começou com um sinal de dólar, finalmente seguido pela conclusão do nome do arquivo. Então, se não conseguir encontrar uma variável para você, ela poderia ter encontrado um nome de arquivo, caso em que ele escapará do cifrão com uma barra invertida, já que é um caractere especial.
Se você iniciou seu comando com um programa seguido por algumas variáveis, a conclusão pode ser entregue para a conclusão programável, o que também poderia causar isso. Por exemplo, digitando gzip $ HOME / seguido por guia irá inserir uma barra invertida. Os arquivos que manipulam a conclusão programável são de propriedade do pacote 'bash-completion', então ou você pode desinstalar esse pacote (eu não tenho instalado), ou você pode convencê-los de que é um bug. Mantenedores: link
Update: no Arch Linux, experimentei a versão 2.0 e que funciona como esperado para ls $HO<TAB>
, mas não para ls $HOME/<TAB>
, então acho que eles ainda não solucionaram esse bug (o Ubuntu usa a versão 1.3). Você pode tentar instalar manualmente a versão 2.0, mas observe que ela não funciona completamente. (Como o relatório de bug também menciona que poderia ser bash, estou usando a versão 4.2.37 ao invés de 4.2.24)