Evitar a conclusão da tabulação bash de uma variável de ambiente com um valor de caminho FS da remoção do nome da variável de ambiente

4

Amigos,

Estou usando o GNU bash como meu shell no Linux:

$ bash --version
GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ 

Ele age muito estranhamente quando estou configurando uma variável de ambiente com um caminho FS como seu valor.

Digamos que eu queira adicionar / opt / database / bin na frente do PATH.

Eu começo digitando:

$ export PATH=/o

Depois, pressiono a tecla Tab no meu teclado.

Mas em vez de completar o caminho para / opt, ele exclui a parte PATH =! Em vez disso, eu recebo:

$ export /opt/

Isto é, naturalmente, extremamente inútil para mim e muito agravante! Eu sou então obrigado a adicionar o nome da variável de ambiente manualmente, o que não é nada do que eu gostaria de fazer!

Eu queria que fosse concluído:

$ export PATH=/opt/

Então, posso concluir o restante do caminho usando a digitação mínima e a tecla tab.

Existe alguma maneira de eu conseguir excluir a variável de ambiente e agir de uma maneira sensata que me ajuda a me tornar produtivo ao máximo?

    
por Sara Jones 09.09.2013 / 14:36

2 respostas

2

Tente desativar a Conclusão do Bash .

Sua PATH conclusão funciona para mim, no entanto, em sistemas que usam o Bash-Completion. Você pode tentar desinstalá-lo e reinstalá-lo para ver se funciona. Eu acho que a funcionalidade é muito útil para desistir.

    
por 10.09.2013 / 03:15
2

desativar completamente a Bash-Completion provavelmente foi um exagero. É um recurso muito útil e produtivo.

A quebra como você descreve é geralmente causada por scripts de configuração de conclusão bash específicos que estão em /etc/bash_completion.d/ , instalados por terceiros .deb packages.

Eu tive exatamente o mesmo problema no Ubuntu, e no meu caso o culpado acabou sendo o script /etc/bash_completion.d/npm instalado pelo pacote npm Debian (contendo o gerenciador de pacotes para o Node.js).

Acabei de transferir o script npm do /etc/bash_completion.d/ - problema resolvido e a funcionalidade útil de conclusão do Bash foi preservada.

    
por 22.01.2014 / 16:26