我为命令编写了自动完成功能,但它不会自动完成选项标志后的参数
function _qpdm_complete()
{
local cur prev options my_list
COMPREPLY=()
cur="${COMP_WORD[COMP_CWORD]}"
prev="${COMP_WORD[COMP_CWORD-1]}"
options="-opt"
my_list="quantum alpha betta omega operation"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
COMPREPLY=( $(compgen -W "${options}" ${cur}) )
return 0
else
COMPREPLY=( $( compgen -W "${my_list}" -- ${cur}) )
fi
}
complete -F _qpdm_complete qpdm
然后在终端
清华大学
qpdm -opt
qpdm -opt<TAB>
qpdm -opt
quantum alpha betta omega operation
qpdm -opt o<TAB>
期待
qpdm -opt o
omega operation
但得到
qpdm -opt o
quantum alpha betta omega operation
我的 _qpdm_complete() 中遗漏了什么?