我正在为foo
具有一些子命令的程序创建自动完成功能,例如:
foo lists:show
foo list:create <list_name>
到目前为止,我有一些工作:
# file: foo_completion.sh
_foo_completion_func ()
{
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
case "$cur" in
t*) COMPREPLY=( $( compgen -W 'list:show' -- $cur ) );;
esac
return 0
}
complete -F _foo_completion_func -o filenames foo
所以如果我这样做source foo_completion.sh
,然后foo li
Tab我会自动完成,但输出是:
foo list\:show
带有\
前面的冒号。它有效,显然它只是一个视觉上的东西,但我希望在那里我得到foo list:show
而不是foo list\:show
. 这可能吗?任何想法都受到高度赞赏。