Я действительно должен был сделать это, чтобы выяснить, как 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 (именно так вы говорите, что хотите завершить, как если бы вы нажали Tab).
Примечание: прочитайте man-страницу для получения дополнительной информации - это то, как я понял это в первую очередь. man bash