我目前有一個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