【发布时间】:2019-05-17 00:38:07
【问题描述】:
我正在尝试制作一个通用的自动完成功能(它实际上需要几个参数,并且有一堆共享逻辑),这样我就可以轻松而整洁地维护一长串类似的命令,具有类似的自动完成功能(数量论据等)。
我有一个 bash 函数,它接受一个参数(尽可能简化):
_autocomplete() {
COMPREPLY=( $(compgen -W "$1" -- "${COMP_WORDS[COMP_CWORD]}") )
return 0
}
当我引用它时,使用一个以函数名作为参数的命令,我还想向它传递一个参数以在函数中运行:
complete -F "_autocomplete example_param" some_function
但是,当我点击标签时,这不起作用,而是出现以下错误:
some_function bash: completion: function `_autocomplete example_param' not found
这是complete的限制吗?
有没有办法解决这个问题,或者更好的方法?
谢谢。
【问题讨论】:
-
使用
-C指定命令。
标签: bash function parameters autocomplete