Как мне получить автодополнения bash?

Как мне получить автодополнения bash?

Есть ли удобный способ вывести (например, на стандартный вывод) список всех возможных завершений команды в bash (тех, которые он мне выдаст, если я введу команду, а затем нажму Tab)?

Редактировать: Думаю, это было не совсем понятно, теперь, когда я перечитал это снова. Я знаю, как получить автодополнения вручную. Я хочу сделать это программно.

решение1

В bash нет функции, которая бы делала именно это. Программируемые дополнения сильно зависят от различных параметров, таких как положение курсора...

eval $(complete -p 'git' | sed s/^complete/compgen/)

кажетсяработать, но очень хрупкий.

решение2

Нажмите TABдважды. Большинство оболочек типа BASH выведут список всех соответствующих вариантов автодополнения для заданной подстроки.

например

root@host$apt-get up

при двойном нажатии TABна эту команду будут выведены как UpdateиUpgrade

решение3

Убедитесь, что у вас bash-completionустановлен пакет. В зависимости от типа установки он может быть включен или не включен по умолчанию, если нет, просто скачайте его с помощью yumили apt. После установки вам нужно будет выйти из системы и войти снова или повторно загрузить свой, .bashrcчтобы использовать его.

@Amazed абсолютно прав в том, как этим пользоваться.

решение4

Я думаю, что вы просите в основном список всех команд, начинающихся с заданной строки. Вы должны быть в состоянии сделать это, получив список всех исполняемых файлов в вашей системе и запустив их через grep.

Связанный контент