2016-04-03 41 views
1

是否可以根據用戶輸入提出交互式建議?bash腳本 - 根據用戶輸入生成建議

例子:

$ my_script --check-hosts prod<TAB> 
    production1.company.com production-db1.company.com 
    production2.company.com 
    production3.company.com 

在不同情況下,我應該查詢DNS記錄,grep的文件等
我知道bash_completion但有可能產生對飛這個名單?

+1

雖然設置爲'COMPREPLY',您可以使用另一個自定義腳本即時獲取整個域名列表 – ritesht93

回答

0

您需要在這裏創建一個新的文件:

/etc/bash_completion.d/myfunction 

更新任何引用下面的代碼塊的第一個和最後一個行內的MyFunction。你也可以用你想要的任何自動完成的術語來更新標誌變量。 --help和--version目前已設置。

_myfunction() 
{ 
    local cur prev flags 
    COMPREPLY=() 
    cur="${COMP_WORDS[COMP_CWORD]}" 
    prev="${COMP_WORDS[COMP_CWORD-1]}" 
    flags="--help --version" 

    if [[ ${cur} == -* ]] ; then 
     COMPREPLY=($(compgen -W "${flags}" -- ${cur})) 
     return 0 
    fi 
} 
complete -F _myfunction myfunction 

一旦你創建了這個文件,重新加載bash。

bash 

然後,自動完成應該工作。

$ myfunction -- 
--help  --version