_example()
{
local cur prev
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${prev} == example ]] ; then
COMPREPLY=( $(compgen -W "git" -- ${cur}) )
elif [[ ${prev} == git ]] ; then
_command
elif [[ ${prev} == g ]] ; then
# ??? TODO
# I want the same completion for `example git <TAB>` and `example g <TAB>`
else
COMPREPLY=()
fi
return 0
}
complete -F _example example
我知道怎么打电话&#34;下一个命令的bash-completion。 (上面的代码)
例如:example git <TAB>
=&gt;完成git
如何进行bash-completion&#34;调用&#34;我想要下一个命令的任何完成?
例如:example g <TAB>
=&gt;完成git
答案 0 :(得分:1)
填充COMP_CWORD
,COMP_WORDS
和COMP_LINE
,然后致电git
的完成功能__git_wrap__git_main
。
有关填充COMP_*
并调用预定义完成函数的示例see this。
有关git
如何完成的更多信息,请might want to start here。