有没有一种方法可以指定特定的命令不区分大小写,而不是全局开启不区分大小写(至少对于该shell)?
在我的特定情况下,我有一个小应用程序,它使我可以通过命令行访问电子邮件地址数据库,因此我键入:
db get email john smith
它会返回约翰·史密斯的电子邮件地址。因此,我已经成功地在应用程序内部启用了自动完成功能:设置
COMPREPLY=($(compgen -W "$(db --complete $COMP_CWORD "$COMP_WORDS[@]"}")" -- ${COMP_WORDS[COMP_CWORD]}))
我希望能通过按Tab键来自动补全“get”和“email”。但是,如果我输入“j<tab>”,它就无法完成自动补全,因为在电子邮件数据库中,它被正确地大写。我想让bash无论如何都能够完成自动补全。(如果我使用大写的“J”,它可以正常工作。)
如果不行的话,我可以让我的--complete
选项通过匹配输入来改变回复的大小写,但最理想的情况是命令行能够尽可能地匹配数据库。
请注意,在使用readline时,我在应用程序内部已经使其正常工作了,只有与bash进行接口时才会出现问题。