
スタート:
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
私がこれを行う限り、これはうまく機能しますsource
。
たとえば、他の任意のコマンドの出力をオートコンプリートするにはpwd
どうすればよいですかhostname
?すべてのファイルパスでオートコンプリート機能を使用するにはどうすればよいですか?
答え1
誰でも
COMPREPLY=($(compgen -W '$(pwd)' -- "$cur") $(compgen -W '$(hostname)' -- "$cur"))
(より大きな配列が必要な場合は1つだけ作成してください)または
COMPREPLY=($( compgen -W '$(pwd; hostname)' -- "$cur" ) )
(まだコマンドをオートコンプリートします)。