Ответ 1
Мне действительно нужно было это сделать, чтобы выяснить, как apt-get autocomplete работает на ubuntu (построил свой собственный инструмент псевдо-репозитория:)
Это многоэтапный процесс:
Во-первых, complete -p
предоставит вам список всех завершений в виде набора команд, которые вы можете запустить для репликации конфигурации. Например, скажем, вы хотите выследить автозаполнение для apt-get
. Тогда:
$ complete -p | grep apt-get
complete -F _apt_get apt-get
Это говорит о том, что функция оболочки _apt_get вызывается механизмом завершения.
Вам нужно воссоздать специальные переменные, используемые функцией, а именно COMP_LINE (полная строка), COMP_WORDS (массив bash всех аргументов - в основном разделенный COMP_LINE), COMP_CWORD (индекс, должен указывать на последний значение), COMP_POINT (где внутри слова, которое вы делаете автозаполнением), и COMP_TYPE (так вы сообщаете, что хотите завершить, как если бы вы нажали вкладку).
Примечание: прочитайте man-страницу для получения дополнительной информации - вот как я понял это в первую очередь. man bash