compgen: ignorando el caso

9

Estoy tratando de implementar una finalización de bash personalizada como se describe aquí . Sin embargo, parece que compgenes entre mayúsculas y minúsculas . ¿Hay alguna manera de convertirlo en mayúsculas y minúsculas en ese contexto?

Pierre
fuente

Respuestas:

5

Modificaría el ejemplo del enlace que mencionó en algo como esto:

_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 obtener más información, consulte la documentación de bash o el sitio de hackers de bash .

Rajish
fuente
Pero esto depende del hecho de que optstodo es minúscula. Si lo fuera --help --verbose --VERSION, nunca podría completar el tercer caso.
Enrico Maria De Angelis