Есть ли способ указать, что конкретная команда нечувствительна к регистру, не включая глобальную нечувствительность к регистру (по крайней мере, для этой оболочки)?
В моем конкретном случае у меня есть небольшое приложение, которое дает мне доступ из командной строки к базе данных адресов электронной почты, поэтому я набираю:
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.