CONFMODULE(3) | Library Functions Manual | CONFMODULE(3) |
НАЗВАНИЕ¶
confmodule - связь с интерфейсом системы настройки Debian.СИНТАКСИС¶
#!/bin/sh -e . /usr/share/debconf/confmodule db_version 2.0 db_capb 'backup' CAPB=$RET db_input 'foo/bar' || true db_go || trueОПИСАНИЕ¶
Это библиотека функций на языке оболочки командной строки, которая позволяет легко взаимодействовать с системой управления настройкой Debian. Она может взаимодействовать с интерфейсной программой через debconf протокол. Конструкция библиотеки такова, что каждая команда в протоколе представлена одной функцией. Имя функции совпадает с названием команды, если не считать префикс «db_» и записи строчными буквами. При вызове функции передаются любые параметры, те же что и у команды. Любой текстовый возвращаемый интерфейсной программой код будет возвращён в переменной $RET, а числовой возвращаемый интерфейсной программой код будет возвращён как код завершения (и эти возвращаемые коды должны быть сохранены или проигнорированы).ЗАМЕЧАНИЯ¶
После того, как библиотека загружена, все последующие выходные данные будут перенаправлены в стандартный поток ошибок, а не в стандартный выходной поток. В общем, это хорошо, так как текст посылаемый в стандартный вывод, воспринимается интерфейсной программой как команды. Если вы хотите послать команду интерфейсной программе напрямую, то нужно выдать её в файловый дескриптор 3, например: echo GET foo/bar >&3Библиотека проверяет, что запущена именно интерфейсная программа, просматривая переменную окружения DEBIAN_HAS_FRONTEND. Если она установлена, то предполагается, что запущена интерфейсная программа. Если нет, то библиотека запускает одну из интерфейсных программ и выполняет копию сценария, который загрузил библиотеку, подключая его к интерфейсной программе. Это означает, что если источник библиотека, то вы должны выполнить её в сценарии как можно раньше, так как всё до загрузки библиотеки может выполниться ещё раз.