【问题标题】:bash script - generate suggestions based on user inputbash 脚本 - 根据用户输入生成建议
【发布时间】:2016-04-03 05:44:15
【问题描述】:

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

例子:

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

在不同的情况下,我应该查询 dns 记录、grep 文件等。
我知道bash_completion,但是否可以即时生成此列表?

【问题讨论】:

  • 在设置 COMPREPLY 时,您可以使用另一个自定义脚本即时获取整个域名列表

标签: linux bash terminal console


【解决方案1】:

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

/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  

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 2015-07-06
    • 2020-04-28
    • 2019-05-10
    • 1970-01-01
    • 2022-10-22
    • 2016-11-18
    • 1970-01-01
    相关资源
    最近更新 更多