compgen:忽略大小写


9

我想实现一个自定义bash补全这里描述。但是,这似乎compgen区分大小写的。有没有办法在这种情况下使其不区分大小写

Answers:


5

我将您提到的链接中的示例修改为如下所示:

_foo() 
{
    local cur prev opts
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD],,}"     # this downcases the result
    prev="${COMP_WORDS[COMP_CWORD-1],,}"  # here too
    opts="--help --verbose --version"

    if [[ ${cur} == -* ]] ; then
        COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
        return 0
    fi
}
complete -F _foo foo

有关更多信息,请参考bash文档或bash黑客站点


但这取决于opts全部为小写的事实。如果是--help --verbose --VERSION,它将永远无法完成第三种情况。
恩里科·玛丽亚·德·安吉利斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.