1

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

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

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

~ $ sr
src/ srptool

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

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

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

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

1 ответ1

1

Ваш $PATH содержит либо ./ либо родительский каталог src и srptool .

Автозаполнение Bash завершает команды, найденные в вашем $PATH , поэтому, если ./ находится там, а ваш текущий рабочий каталог содержит исполняемые файлы, нажатие на Tab внутри него заставит Bash раскрыть имя всех исполняемых файлов в нем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .