compgen: ignorando caso

9

Estou tentando implementar uma conclusão personalizada do bash, conforme descrito aqui . No entanto, parece que compgendiferencia maiúsculas de minúsculas . Existe uma maneira de torná-lo sem distinção entre maiúsculas e minúsculas nesse contexto?

Pierre
fonte

Respostas:

5

Eu modificaria o exemplo do link que você mencionou para algo assim:

_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

Para mais informações, consulte a documentação do bash ou o site do bash hackers .

Rajish
fonte
Mas isso depende do fato de que optstudo é minúsculo. Se fosse --help --verbose --VERSION, nunca poderia concluir o terceiro caso.
Enrico Maria De Angelis