Como bash-complete a saída de dois comandos arbitrários ao mesmo tempo

1

Aqui vai:

function _command() {
    local cur
    COMPREPLY=()
    cur=${COMP_WORDS[COMP_CWORD]}
    if [ "$COMP_CWORD" -ge "2" ]; then
        COMPREPLY=($( compgen -W '$(pwd)' -- "$cur" ) )
    else
        COMPREPLY=($( compgen -W "arg1 arg2" -- "$cur" ) )
    fi
}
complete -F _command command

Isso funciona bem, desde que eu source .

E se eu quiser que ele complete automaticamente as duas saídas de pwd e algum outro comando arbitrário, digamos hostname ? E se eu também quisesse concluir automaticamente em qualquer caminho de arquivo?

    
por Tshepang 13.05.2011 / 22:15

1 resposta

2

Ou

COMPREPLY=($(compgen -W '$(pwd)' -- "$cur") $(compgen -W '$(hostname)' -- "$cur"))

(você quer um array maior, apenas faça um) ou

COMPREPLY=($( compgen -W '$(pwd; hostname)' -- "$cur" ) )

(ainda autocompletando um comando).

    
por 13.05.2011 / 22:53

Tags