НАЗВАНИЕ
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. Если она установлена, то предполагается, что запущена интерфейсная программа. Если нет, то библиотека запускает одну из интерфейсных программ и выполняет копию сценария, который загрузил библиотеку, подключая его к интерфейсной программе. Это означает, что если источник библиотека, то вы должны выполнить её в сценарии как можно раньше, так как всё до загрузки библиотеки может выполниться ещё раз.