bash / readline не выполняет автозаполнение имени каталога

322
Martin Kunev

У меня есть исполняемый файл в подкаталоге текущего каталога:

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

Я пытаюсь выполнить это, набрав srи затем нажав вкладку. Есть две возможности для завершения (один каталог у меня дома и один исполняемый файл в / usr / bin /), поэтому я ожидаю, что bash покажет их мне:

~ $ sr src/ srptool 

Вместо этого он завершает имя исполняемого файла srptool(игнорируя каталог с моим исполняемым файлом).

Я проверил с другим именем каталога и обнаружил, что когда единственным возможным завершением является имя каталога, bash завершает его, как и ожидалось.

У меня такое же поведение в bash 3.2.53 на Mac и 4.3.39 в Linux.

Я помню эту работу раньше. Я не уверен, что это проблема bash или readline. Есть идеи?

1
Вы пробовали `. / Sr`? Run CMD 8 лет назад 0
@ClassStacker Проблема не в том, что я не знаю, как его выполнить. Мне интересно, почему он игнорирует каталог в моем примере. Martin Kunev 8 лет назад 0

1 ответ на вопрос

1
Larssend

Your $PATH contains either ./ or the parent directory of src and srptool.

Bash auto-completion completes commands found in your $PATH, so if ./ is in there and your current working directory contains executables, hitting Tab inside it will make Bash expand the name of whatever executables are in it.

Похожие вопросы