Встроенные средства программируемого завершения
Доступны три встроенные команды для управления средствами программируемого завершения: одна для указания, как должны завершаться аргументы конкретной команды, и две для изменения завершения во время его выполнения.
compgen-
compgen [option] [word]
Генерирует возможные совпадения дополнения для word в соответствии с options, которые могут быть любыми опциями, принимаемыми встроенной командой
complete, за исключением -p и -r, и выводит совпадения в стандартный вывод. При использовании опций -F или -C, различные переменные среды, устанавливаемые средствами программируемого дополнения, хотя и доступны, не будут иметь полезных значений.Совпадения будут сгенерированы так же, как если бы код программируемого дополнения сгенерировал их непосредственно из спецификации дополнения с теми же флагами. Если word указан, будут отображаться только те дополнения, которые соответствуют word.
Значение возврата — true, если не была передана неверная опция или не было сгенерировано никаких совпадений.
complete-
complete [-abcdefgjksuv] [-o comp-option] [-DEI] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name …] complete -pr [-DEI] [name …]
Указывает, как должны завершаться аргументы каждого name. Если передана опция -p, или если опции не переданы, существующие спецификации дополнения выводятся таким образом, чтобы их можно было повторно использовать в качестве входных данных. Опция -r удаляет спецификацию дополнения для каждого name, или, если name не указаны, все спецификации дополнения. Опция -D указывает, что другие передаваемые опции и действия должны применяться к дополнению команды «по умолчанию»; то есть, дополнение, пытающееся завершить команду, для которой ранее не было определено дополнение. Опция -E указывает, что другие передаваемые опции и действия должны применяться к дополнению «пустой» команды; то есть, дополнение, пытающееся завершить пустую строку. Опция -I указывает, что другие передаваемые опции и действия должны применяться к дополнению начального слова, не являющегося частью присваивания, в строке, или после разделителя команды, такого как ‘;’ или ‘|’, который обычно является дополнением имени команды. Если переданы несколько опций, опция -D имеет приоритет над -E, а обе имеют приоритет над -I. Если передана любая из опций -D, -E или -I, любые другие аргументы name игнорируются; эти дополнения применяются только к указанному случаю.
Процесс применения этих спецификаций дополнения при попытке завершения слова описан выше (см. Программируемое дополнение).
Другие опции, если они указаны, имеют следующие значения. Аргументы опций -G, -W и -X (и, при необходимости, опций -P и -S) должны быть заключены в кавычки для защиты от расширения перед вызовом встроенной команды
complete.-o comp-option-
Опция comp-option контролирует несколько аспектов поведения compspec, выходящих за рамки простого генерирования дополнений. comp-option может быть одним из следующих:
bashdefault-
Выполнить остальную часть дополнений Bash по умолчанию, если compspec не генерирует совпадений.
default-
Использовать стандартное завершение имени файла Readline, если compspec не генерирует совпадений.
dirnames-
Выполнить завершение имени каталога, если compspec не генерирует совпадений.
filenames-
Указать Readline, что compspec генерирует имена файлов, чтобы он мог выполнить обработку, специфичную для имён файлов (например, добавление слеша к именам каталогов, экранирование специальных символов или подавление последующих пробелов). Эта опция предназначена для использования с оболочечными функциями, заданными с помощью -F.
noquote-
Указать Readline не экранировать завершённые слова, если они являются именами файлов (экранирование имён файлов является по умолчанию).
nosort-
Указать Readline не сортировать список возможных дополнений по алфавиту.
nospace-
Указать Readline не добавлять пробел (по умолчанию) к завершённым словам в конце строки.
plusdirs-
После генерации любых совпадений, определённых compspec, выполняется завершение имени каталога, и любые совпадения добавляются к результатам других действий.
-A action-
Действие action может быть одним из следующих, чтобы сгенерировать список возможных дополнений:
alias-
Псевдонимы имен. Может также быть указан как -a.
arrayvar-
Имена переменных массива.
binding-
Имена сопоставлений клавиш Readline (см. Связываемые команды Readline).
builtin-
Имена встроенных команд оболочки. Может также быть указан как -b.
command-
Имена команд. Может также быть указан как -c.
directory-
Имена каталогов. Может также быть указан как -d.
disabled-
Имена отключенных встроенных команд оболочки.
enabled-
Имена включенных встроенных команд оболочки.
export-
Имена экспортированных переменных оболочки. Может также быть указан как -e.
file-
Имена файлов. Может также быть указан как -f.
function-
Имена оболочечных функций.
group-
Имена групп. Может также быть указан как -g.
helptopic-
Темы справки, принимаемые встроенной командой
help, (см. Встроенные команды Bash). hostname-
Имена хостов, взятые из файла, указанного переменной оболочки
HOSTFILE, (см. Переменные Bash). job-
Имена задач, если включен контроль задач. Может также быть указан как -j.
keyword-
Зарезервированные слова оболочки. Может также быть указан как -k.
running-
Имена запущенных задач, если включен контроль задач.
service-
Имена служб. Может также быть указан как -s.
setopt-
Допустимые аргументы для опции -o встроенной команды
set, (см. Встроенная команда Set). shopt-
Имена опций оболочки, принимаемые встроенной командой
shopt, (см. Встроенные команды Bash). signal-
Имена сигналов.
stopped-
Имена остановленных задач, если включен контроль задач.
user-
Имена пользователей. Может также быть указан как -u.
variableИмена всех переменных оболочки. Может также быть указан как -v.
-C command-
command выполняется в подоболочке, а её вывод используется в качестве возможных дополнений. Аргументы передаются так же, как с опцией -F.
-F function-
Оболочечная функция function выполняется в текущей оболочке. При её выполнении $1 — это имя команды, аргументы которой дополняются, $2 — это слово, которое дополняется, а $3 — слово, предшествующее слову, которое дополняется, как описано выше (см. Программируемое дополнение). По завершении возможные дополнения извлекаются из значения массива переменной
COMPREPLY. -G globpat-
Шаблон расширения имён файлов globpat расширяется для генерации возможных дополнений.
-P prefix-
prefix добавляется в начало каждого возможного дополнения после применения всех остальных опций.
-S suffix-
suffix добавляется к каждому возможному дополнению после применения всех остальных опций.
-W wordlist-
Список слов wordlist разделяется символами из специальной переменной
IFS, а каждое получившееся слово расширяется. Возможными дополнениями являются члены получившегося списка, которые совпадают со словом, которое дополняется. -X filterpatfilterpat — это шаблон, используемый для расширения имён файлов. Он применяется к списку возможных дополнений, сгенерированных предыдущими опциями и аргументами, и каждое совпадающее дополнение filterpat удаляется из списка. «!» в начале filterpat инвертирует шаблон; в этом случае из списка удаляется любое дополнение, не совпадающее с filterpat.
Значение возврата — true, если не была передана неверная опция, опция, отличная от -p или -r, была передана без аргумента name, была предпринята попытка удалить спецификацию дополнения для name, для которого спецификация не существует, или при добавлении спецификации дополнения произошла ошибка.
compopt-
compopt [-o option] [-DEI] [+o option] [name]
Изменяет опции дополнения для каждого name в соответствии с options или для текущего выполняемого дополнения, если name не указаны. Если options не указаны, отображаются опции дополнения для каждого name или текущего дополнения. Возможные значения option — это допустимые значения для встроенной команды
complete, описанные выше. Опция -D указывает, что другие переданные опции должны применяться к дополнению команды «по умолчанию»; то есть, дополнение, пытающееся завершить команду, для которой ранее не было определено дополнение. Опция -E указывает, что другие переданные опции должны применяться к дополнению «пустой» команды; то есть, дополнение, пытающееся завершить пустую строку. Опция -I указывает, что другие переданные опции должны применяться к дополнению начального слова, не являющегося частью присваивания, в строке, или после разделителя команды, такого как ‘;’ или ‘|’, который обычно является дополнением имени команды.Если переданы несколько опций, опция -D имеет приоритет над -E, а обе имеют приоритет над -I.
Значение возврата — true, если не была передана неверная опция, была предпринята попытка изменить опции для name, для которого не существует спецификации дополнения, или произошла ошибка вывода.
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html