bash脚本 - 根据用户输入生成建议

时间:2016-04-03 05:44:15

标签: linux bash terminal console

是否可以根据用户输入提出互动建议?

示例:

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

在不同的情况下,我应该查询dns记录,grep文件等 我知道bash_completion但是可以动态生成这个列表吗?

1 个答案:

答案 0 :(得分:0)

您需要在此处创建一个新文件:

/etc/bash_completion.d/myfunction

在下面的代码块的第一行和最后一行中更新对myfunction的任何引用。您还可以使用您想要的任何自动完成的术语更新flags变量。 --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