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).
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?
Tags bash