Spec-Zone.ru › Bash

Встроенные команды программируемого дополнения

​

Для управления средствами программируемого дополнения доступны три встроенные команды: одна задаёт способ дополнения аргументов определённой команды, а две другие изменяют процесс дополнения во время его выполнения.

compgen
compgen [-V varname] [option] [word]

Сгенерировать возможные варианты дополнения для word в соответствии с option, которые могут быть любыми параметрами, принимаемыми встроенной командой complete, за исключением -p, -r, -D, -E и -I, и вывести варианты в стандартный вывод.

Если указан параметр -V, compgen сохраняет сгенерированные варианты дополнения в индексированную переменную массива varname, а не выводит их в стандартный вывод.

При использовании параметров -F или -C различные переменные оболочки, устанавливаемые средствами программируемого дополнения, хотя и будут доступны, не будут содержать полезных значений.

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

Возвращается истинное значение, если не указан недопустимый параметр и были сгенерированы варианты.

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 или не указаны параметры и name, вывести существующие спецификации дополнения в формате, пригодном для повторного использования в качестве входных данных. Параметр -r удаляет спецификацию дополнения для каждого name или, если name не указаны, удаляет все спецификации дополнения.

Параметр -D указывает, что остальные заданные параметры и действия должны применяться к дополнению «по умолчанию», то есть к попытке дополнить команду, для которой дополнение ещё не определено. Параметр -E указывает, что остальные заданные параметры и действия должны применяться к «пустому» дополнению команды, то есть к попытке дополнения в пустой строке. Параметр -I указывает, что остальные заданные параметры и действия должны применяться к дополнению первого слова в строке, не являющегося присваиванием, либо слова после разделителя команд, например «;» или «|»; обычно это дополнение имени команды. Если задано несколько параметров, параметр -D имеет приоритет над -E, а оба они имеют приоритет над -I. Если указан любой из параметров -D, -E или -I, все остальные аргументы name игнорируются; эти дополнения применяются только в случае, указанном параметром.

Процесс применения этих спецификаций дополнения при попытке дополнить слово описан выше (см. Программируемое дополнение).

Другие параметры, если они заданы, имеют следующие значения. Аргументы параметров -G, -W и -X (а при необходимости и параметров -P и -S) следует заключать в кавычки, чтобы защитить их от раскрытия до вызова встроенной команды complete.

-o comp-option

comp-option управляет рядом аспектов поведения спецификации дополнения, помимо простого создания вариантов дополнения. comp-option может принимать одно из следующих значений:

bashdefault

Выполнить остальные стандартные процедуры дополнения Bash, если спецификация дополнения не создаёт вариантов.

default

Использовать стандартное дополнение имён файлов Readline, если спецификация дополнения не создаёт вариантов.

dirnames

Выполнить дополнение имён каталогов, если спецификация дополнения не создаёт вариантов.

filenames

Сообщить Readline, что спецификация дополнения создаёт имена файлов, чтобы она могла выполнить обработку, специфичную для имён файлов (например, добавить косую черту к именам каталогов, заключить специальные символы в кавычки или не добавлять пробелы в конце). Этот параметр предназначен для использования с функциями оболочки, заданными с помощью -F.

fullquote

Указать Readline заключать все дополненные слова в кавычки, даже если это не имена файлов.

noquote

Указать Readline не заключать дополненные слова в кавычки, если это имена файлов (по умолчанию имена файлов заключаются в кавычки).

nosort

Указать Readline не сортировать список возможных вариантов дополнения в алфавитном порядке.

nospace

Указать Readline не добавлять пробел (по умолчанию он добавляется) после слов, дополненных в конце строки.

plusdirs

После создания всех вариантов, определённых спецификацией дополнения, попытаться дополнить имя каталога и добавить все найденные варианты к результатам остальных действий.

-A action

action может принимать одно из следующих значений для создания списка возможных вариантов дополнения:

alias

Имена псевдонимов. Также может задаваться как -a.

arrayvar

Имена переменных массива.

binding

Имена привязок клавиш Readline (см. Команды Readline, доступные для привязки).

builtin

Имена встроенных команд оболочки. Также может задаваться как -b.

command

Имена команд. Также может задаваться как -c.

directory

Имена каталогов. Также может задаваться как -d.

disabled

Имена отключённых встроенных команд оболочки.

enabled

Имена включённых встроенных команд оболочки.

export

Имена экспортированных переменных оболочки. Также может задаваться как -e.

file

Имена файлов и каталогов, как при дополнении имён файлов в Readline. Также может задаваться как -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) — слово перед дополняемым словом, как описано выше (см. Программируемое дополнение). Когда выполнение function завершается, программируемое дополнение получает возможные варианты дополнения из значения переменной массива COMPREPLY.

-G globpat

Раскрыть шаблон раскрытия имён файлов globpat, чтобы создать возможные варианты дополнения.

-P prefix

Добавить prefix в начало каждого возможного варианта дополнения после применения всех остальных параметров.

-S suffix

Добавить suffix в конец каждого возможного варианта дополнения после применения всех остальных параметров.

-W wordlist

Разделить wordlist по символам из специальной переменной IFS и раскрыть каждое полученное слово. Внутри wordlist учитываются кавычки оболочки, что позволяет включать в слова метасимволы оболочки или символы, содержащиеся в значении IFS. Возможными вариантами дополнения являются элементы полученного списка, соответствующие префиксу дополняемого слова.

-X filterpat

filterpat — это шаблон, используемый при раскрытии имён файлов. Он применяется к списку возможных вариантов дополнения, созданному предыдущими параметрами и аргументами, и каждый вариант, соответствующий filterpat, удаляется из списка. Начальный символ «!» в filterpat инвертирует шаблон; в этом случае удаляется любой вариант дополнения, который ему не соответствует.

Возвращается истинное значение, если не указан недопустимый параметр, параметр, отличный от -p, -r, -D, -E или -I, не задан без аргумента name, не предпринимается попытка удалить спецификацию дополнения для name, для которого такая спецификация отсутствует, и при добавлении спецификации дополнения не происходит ошибки.

compopt
compopt [-o option] [-DEI] [+o option] [name]

Изменить параметры дополнения для каждого name в соответствии с option или для выполняемого в данный момент дополнения, если name не заданы. Если option не заданы, отобразить параметры дополнения для каждого name или для текущего дополнения. Возможные значения option — это значения, допустимые для описанной выше встроенной команды complete.

Параметр -D указывает, что остальные заданные параметры должны применяться к дополнению команды «по умолчанию»; параметр -E указывает, что остальные заданные параметры должны применяться к «пустому» дополнению команды; параметр -I указывает, что остальные заданные параметры должны применяться к дополнению первого слова в строке. Эти случаи определяются так же, как для встроенной команды complete.

Если задано несколько параметров, параметр -D имеет приоритет над -E, а оба они имеют приоритет над -I

Возвращается истинное значение, если не указан недопустимый параметр, не предпринимается попытка изменить параметры для 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