我正在为 make 命令(称为 user_make)编写一个新的自动完成,它应该将参数扩展到现有的 make 自动完成。问题是它删除了执行 make auto complete 时已经在那里初始化的所有命令,我无法更改原始的 make auto 完成。
我只需要知道如何将 COMPREPLY 与 compgen 一起使用,而不是创建新的命令列表,而只是使用新参数对其进行扩展。
有人知道吗?
#!/bin/sh
# bash completion for ovirt-engine
function _make_auto_completion ()
{
local cur prev opts
cur="${COMP_WORDS[COMP_CWORD]}"
#
# The basic options we'll complete.
#
local cmds
cmds=`gmake -pn | grep -A1 "^# makefile"| grep -v "^#\|^--" | uniq | awk '/^[A-Za-z]/ {print $1}'`
COMPREPLY=( $( compgen -W "$cmds" -- "$cur" ) )
return 0
}
complete -F _make_auto_completion make