compgen: ignorer la casse

9

J'essaie d'implémenter une complétion bash personnalisée comme décrit ici . Cependant, il semble que cela compgensoit sensible à la casse . Y a-t-il un moyen de le rendre insensible à la casse dans ce contexte?

Pierre
la source

Réponses:

5

Je modifierais l'exemple du lien que vous avez mentionné en quelque chose comme ceci:

_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

Pour plus d'informations, reportez-vous à la documentation bash ou au site bash hackers .

Rajish
la source
Mais cela dépend du fait que optstout est en minuscules. S'il l'était --help --verbose --VERSION, il ne pourrait jamais achever le troisième cas.
Enrico Maria De Angelis