У меня есть экземпляр bash без поддержки Readline, т.е. этот bash вызывается с параметром --noediting
. Причина в том, что этот экземпляр bash используется другой программой.
Другая программа хочет знать, как этот bash завершит командную строку, и для этого выдает compgen
команды в оболочке bash, например
compgen -o default I
Это отлично работает в моем bash без поддержки Readline. Вот пример: допустим, мы находимся в каталоге с тремя файлами:
IMG_1234.JPG
about.html
index.html
Команда compgen -o default I
распечатывает должным образом
IMG_1234.JPG
Однако теперь я хочу переключиться на завершение без учета регистра. Обычно выдаю в оболочке
bind 'set completion-ignore-case on'
а в экземпляре bash с поддержкой Readline все, как ожидалось: compgen -o default I
печатает
IMG_1234.JPG
index.html
Однако в моем экземпляре bash без поддержки Readline команда bind
ничего не делает, и я все равно получаю только совпадение IMG_1234.JPG
.
Итак, мой вопрос: как я могу установить предложения завершения без учета регистра (при использовании compgen
) в экземпляре bash, который вызывается без поддержки Readline?
set completion-ignore-case on
, но bash без поддержки Readline, похоже, игнорирует этот файл. - person halloleo   schedule 01.04.2015inputrc
предназначен дляreadline
. - person pynexj   schedule 01.04.2015compgen
в --noediting bash (который не использует inputrc). - person halloleo   schedule 01.04.2015