2016-04-03 62 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