是否可以根据用户输入提出互动建议?
示例:
$ my_script --check-hosts prod<TAB>
production1.company.com production-db1.company.com
production2.company.com
production3.company.com
在不同的情况下,我应该查询dns记录,grep文件等
我知道bash_completion
但是可以动态生成这个列表吗?
答案 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