bash / readline não preenche automaticamente o nome do diretório

1

Eu tenho um executável em um subdiretório do diretório atual:

~ $ ls -l src/users
-rwxr-xr-x 1 me users 1001K Nov 17 18:52 src/users*

Eu tento executá-lo digitando sr e clicando na guia. Acontece que existem duas possibilidades de conclusão (um diretório em minha casa e um executável em / usr / bin /), então eu espero que o bash mostre para mim:

~ $ sr
src/ srptool

Em vez disso, ele completa o nome do executável srptool (ignorando o diretório com meu executável).

Eu testei com outro nome de diretório e descobri que quando a única conclusão possível é o nome do diretório, o bash o completa como esperado.

Eu tenho o mesmo comportamento no bash 3.2.53 no Mac e 4.3.39 no Linux.

Eu lembro disso trabalhando antes. Não tenho certeza se é um problema bash ou readline. Alguma idéia?

    
por Martin Kunev 17.11.2015 / 18:10

1 resposta

1

Seu $PATH contém ./ ou o diretório pai de src e srptool .

O preenchimento automático de Bash completa os comandos encontrados em seu $PATH , portanto, se ./ estiver lá e seu diretório de trabalho atual contiver executáveis, pressionar Tab dentro dele fará com que Bash expanda o nome de qualquer executável que esteja nele.

    
por 18.11.2015 / 01:54