Spec-Zone.ru › Bash

Встроенные средства программируемого завершения

Доступны три встроенные команды для управления средствами программируемого завершения: одна для указания, как должны завершаться аргументы конкретной команды, и две для изменения завершения во время его выполнения.

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 filterpat

filterpat — это шаблон, используемый для расширения имён файлов. Он применяется к списку возможных дополнений, сгенерированных предыдущими опциями и аргументами, и каждое совпадающее дополнение 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API