我目前有一个Bash补全文件,它完成了脚本允许命令列表中的单个参数(称为“pbt”)。这是工作bash补全文件:多级Bash完成
_pbt_complete()
{
local cur goals
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
goals='asadmin clean deploy'
cur=`echo $cur`
COMPREPLY=($(compgen -W "${goals}" ${cur}))
}
complete -F _pbt_complete pbt
所以,如果我叫
pbt <tab>
击完成对所有允许的命令(asadmin的,干净的,部署),这是好的。
现在我想为完成添加“第二”级别。因此,例如,如果键入
pbt asadmin <tab>
它应该完成那些只有asadmin-“环境”(这也是我将定义bash补全文件内)内的所有选项,例如说pbt asadmin [start-domain|stop-domain]
但是,如果我类型
pbt deploy <tab>
它应该完成另一组选项,例如pbt deploy [all|current]
。所以第二个命令的选项应该总是依赖于第一个命令。我怎么能在完成文件中做到这一点?
您是否已安装或查看bash完成软件包? http://bash-completion.alioth.debian.org/ p4和apt模块执行此操作。 – mkb 2011-03-14 18:39:01