定义的bash函数rte()
:
$ function rte(){ rostopic echo $@ ; };
并尝试使用rostopic
的完成功能
$ complete -p rostopic
complete -F _roscomplete_rostopic rostopic
通过命令:
$ complete -F _roscomplete_rostopic rte
以上设置可以验证如下:
$ complete -p rte
complete -F _roscomplete_rostopic rte
但是,rte <partial input><tab>
不提供完成次数。
问题:如何让rte()
使用rostopic
完成?我想当rte()
的完成时调用rostopic
完成后,需要向echo
完成提供上下文rostopic
(即COMP_WORDS
需要包含echo
)。
答案 0 :(得分:0)
找出解决方案 - 现在.bashrc
中有以下内容:
function rte(){ rostopic echo "$@" ; };
complete -F _mycomplete_ rte
function _mycomplete_()
{
local fragment=${COMP_WORDS[COMP_CWORD]}
COMP_CWORD=2
COMP_WORDS[0]="rostopic"
COMP_WORDS[1]="echo"
COMP_WORDS[2]=$fragment
COMP_LINE="rostopic echo $fragment"
_roscomplete_rostopic;
}