bash脚本 - 根据用户输入生成建议
问题描述:
是否可以根据用户输入提出交互式建议?bash脚本 - 根据用户输入生成建议
例子:
$ my_script --check-hosts prod<TAB>
production1.company.com production-db1.company.com
production2.company.com
production3.company.com
在不同情况下,我应该查询DNS记录,grep的文件等
我知道bash_completion
但有可能产生对飞这个名单?
答
您需要在这里创建一个新的文件:
/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
虽然设置为'COMPREPLY',您可以使用另一个自定义脚本即时获取整个域名列表 – ritesht93