bash 自动完成个人命令:无法自动完成选项后的参数

bash 自动完成个人命令:无法自动完成选项后的参数

我为命令编写了自动完成功能,但它不会自动完成选项标志后的参数

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() 中遗漏了什么?

相关内容