4

То, что я ищу, это не то, как добавить автозаполнение в bash для другой программы, а способ получить результат того, что произошло бы в bash, в строку:

autocomplete "/etc/apa"

вернется

/etc/apache2/

так что я могу использовать это в моем сценарии.

Любая помощь очень ценится, потому что все, что я могу найти, это как использовать "завершенную" функцию bash, которая делает что-то другое;)

Ура, Рафаэль

1 ответ1

6

Bash есть встроенная команда compgen которая может вам очень помочь. Например, если вы хотите знать, какие каталоги будут автоматически заполняться при вводе cd /etc/s<TAB>:

$ compgen -d /etc/s
/etc/security
/etc/sgml
/etc/skel
/etc/ssh
/etc/ssl
/etc/subversion
/etc/sudoers.d
/etc/sysctl.d
$

Затем следующая команда скажет вам, в какую директорию вы войдете с помощью cd /etc/se<TAB>:

$ compgen -d /etc/se
/etc/security
$

compgen может использовать большинство параметров complete команды. Смотрите руководство bash для более подробной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .