Я пытаюсь создать общую функцию автозаполнения (которая на самом деле принимает несколько параметров и имеет кучу общей логики), чтобы я мог легко и аккуратно вести длинный список похожих команд с одинаковыми автозаполнениями (количествоаргументы и т. д.).
У меня есть функция bash, которая принимает аргумент (максимально упрощенный):
_autocomplete() {
COMPREPLY=( $(compgen -W "$1" -- "${COMP_WORDS[COMP_CWORD]}") )
return 0
}
И когда я ссылаюсь на него, используя команду, котораяпринимает имя функции в качестве аргумента, я также хочу передать ему параметр для запуска в функции:
complete -F "_autocomplete example_param" some_function
Однако, это не работает, когда я нажимаю клавишу Tab, и вместо этого ошибки с:
some_function bash: completion: function `_autocomplete example_param' not found
Это ограничение complete
?
Есть ли способ обойти это или лучший подход?
Спасибо.