compgen: ignorando il caso


9

Sto cercando di implementare un completamento bash personalizzato come descritto qui . Tuttavia, sembra che compgensia sensibile al maiuscolo / minuscolo . C'è un modo per renderlo maiuscole e minuscole in quel contesto?

Risposte:


5

Vorrei modificare l'esempio dal link che hai citato in qualcosa del genere:

_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

Per maggiori informazioni consultare la documentazione di bash o il sito degli hacker di bash .


Ma questo dipende dal fatto che optsè tutto minuscolo. Se lo fosse --help --verbose --VERSION, non potrebbe mai completare il terzo caso.
Enrico Maria De Angelis,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.