Установка нечувствительности к регистру для завершения bash для каждой команды

Есть ли способ указать, что конкретная команда нечувствительна к регистру, не включая глобальную нечувствительность к регистру (по крайней мере, для этой оболочки)?

В моем конкретном случае у меня есть небольшое приложение, которое дает мне доступ из командной строки к базе данных адресов электронной почты, поэтому я набираю:

db get email john smith

, и оно возвращает обратно с адресом электронной почты Джона Смита. Таким образом, мне удалось включить завершение в основном внутри приложения: настройка

COMPREPLY=($(compgen -W "$(db --complete $COMP_CWORD "$COMP_WORDS[@]"}")" -- ${COMP_WORDS[COMP_CWORD]}))

позволяет мне выполнять табуляцию getи email. Однако, если я затем наберу j, он откажется, потому что в базе данных электронной почты он правильно написан с заглавной буквы. В любом случае, я бы хотел, чтобы bash завершил это. (Если я использую заглавную J, это сработает.)

В противном случае я могу изменить регистр --completeответа, сопоставив ввод, я предположим, но в идеале командная строка должна соответствовать базе данных, если это вообще возможно.

Обратите внимание, что это работает внутри приложения при использовании readline, проблема заключается только в взаимодействии с bash.

7
задан Tanktalus 9 May 2012 в 23:40
поделиться