Пред: , Вверх: gpg-connect-agent   [Содержание][Указатель]


8.7.2 Команды управления

При чтении команд Assuan gpg-agent допускает также несколько специальных команд для управления работой. Эти управляющие команды начинаются с косой черты (/).

/echo аргументы

Просто вывести аргументы.

/let имя значение

Присвоить переменой имя заданное значение. Переменные заменяются на свои значения в данных на входе, только если была введена команда /subst. На переменную указывает знак доллара, имя переменной может включаться также в необязательные фигурные скобки. Ограничения на имена идентичны ограничениям в стандартном командном интерпретаторе Борна. Проверки пока нет, но она может быть введена в будущем. Внутри фигурных скобок в начале и в конце пробелы недопустимы.

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

Можно вызывать функции переменных: за именем функции должен следовать по меньшей мере один пробел и по меньшей мере один аргумент. Определены следующие функции:

get

Возвращает значение, описанное аргументом. Доступны аргументы:

cwd

Текущий рабочий каталог.

homedir

Домашний каталог GnuPG.

sysconfdir

Каталог системных настроек GnuPG.

bindir

Каталог исполняемых файлов GnuPG.

libdir

Каталог библиотек GnuPG.

libexecdir

Каталог библиотек исполняемых файлов GnuPG.

datadir

Каталог данных GnuPG.

serverpid

Идентификатор процесса текущего сервера. Чтобы получить осмысленное значение, перед этим нужно вызвать команду /serverpid.

unescape аргументы

Удалить экранирующие символы в стиле Си из аргументов. Обратите внимание, что \0 и \x00 неявным образом завершают строку. В качестве преобразуемой строки берутся все аргументы направо от пробела, ограничивающего имя функции.

unpercent аргументы
unpercent+ аргументы

Удалить экранирующие пробелы из аргументов. Обратите внимание, что %00 неявным образом завершает строку. В качестве преобразуемой строки берутся все аргументы направо от пробела, ограничивающего имя функции. unpercent+ переводит также знаки плюса в пробелы.

percent аргументы
percent+ аргументы

Экранировать аргументы символом процента. Экранируются символы табуляции, конца страницы, конца строки, перевода каретки, а также двоеточия. percent+ переводит также пробелы в знаки плюса.

errcode аргумент
errsource аргумент
errstring аргумент

Считать аргумент целым числом и прочесть его с помощью strtol. Возвратить код ошибки gpg-error, источник ошибки или форматированную строку с кодом и источником ошибки.

+
-
*
/
%

Прочесть все аргументы в виде целых чисел типа long с помощью strtol и применить эту операцию. Деление на ноль дает пустую строку.

!
|
&

Прочесть все аргументы в виде целых чисел типа long с помощью strtol и применить логическую операцию НЕ, ИЛИ или И. Оператор НЕ действует только на последний аргумент.

/definq имя переменная

Использовать содержимое указанной переменной для запросов с указанным именем. Если в качестве имени задана звездочка (*), это соответствует любым запросам.

/definqfile имя файл

Использовать содержимое указанного файла для запросов с указанным именем. Если в качестве имени задана звездочка (*), это соответствует любым запросам.

/definqprog имя программа

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

/datafile имя

Записывать все строки данных из сервера в указанный файл. Файл открывается для записи и создается, если не существует. Из существующего файла данные удаляются. Данные записываются в файл в полностью декодированном виде. Если в качестве имени задан «-», данные записываются в стандартный поток вывода. Файл остается открытым до тех пор, пока не будет задан новый файл или эта команда не будет введена без аргумента.

/showdef

Вывести все определения

/cleardef

Сбросить все определения

/sendfd файл режим

Открыть указанный файл в заданном режиме (который должен быть допустимой строкой режима fopen) и выслать файловый дескриптор серверу. За этим обычно следует команда, подобная INPUT FD, чтобы установить источник ввода для других команд.

/recvfd

Пока не реализовано.

/open переменная файл [режим]

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

/close fd

Закрыть данный файловый дескриптор. Внимание: это экспериментальная команда, в будущих версиях она может поменяться.

/showopen

Показать список открытых файлов.

/serverpid

Отправить на сервер команду Assuan GETINFO pid и сохранить возвращенный идентификатор процесса для внутренних нужд.

/sleep

Заснуть на секунду.

/hex
/nohex

То же, что параметр командной строки --hex.

/decode
/nodecode

То же, что параметр командной строки --decode.

/subst
/nosubst

Включить и выключить подстановку переменных. В исходном состоянии выключена, если не задан параметр командной строки --subst. Если /subst включается один раз, из начала входных строк удаляются пробелы, чтобы их было легче читать.

/while условие
/end

С помощью этих команд вводятся циклы. Все строки между while и соответствующим end выполняются, пока результат вычисления условия равен ненулевому числу, строке true или строке yes. Числа определяются функцией strtol. Пример:

  /subst
  /let i 3
  /while $i
    /echo счетчик цикла равен $i
    /let i ${- $i 1}
  /end
/if условие
/end

С помощью этих команд вводится условное выполнение. Все строки между if и соответствующим end выполняются, если результат вычисления условия равен ненулевому числу, строке true или строке yes. Числа определяются функцией strtol.

/run файл

Выполнить команды из указанного файла.

/bye

Разорвать соединение и выйти из программы.

/help

Вывести список доступных управляющих команд.


Пред: , Вверх: gpg-connect-agent   [Содержание][Указатель]