Сергей Супрунов
Думаю, вам приходилось сталкиваться с работой утилиты dialog, входящей в
состав большинства UNIX-систем (включая FreeBSD и практически все дистрибутивы Linux).
Для Linux она часто используется в конфигурационных сценариях, во FreeBSD ее
можно встретить при установке некоторых приложений из коллекции портов
(например, oops, php). Она позволяет создавать простейшие диалоговые окна для
взаимодействия с пользователем, используя псевдографику (как в sysinstall).
Конечно, для «ортодоксального» системного администратора любое отступление от
командной строки – кощунство, однако интерактивность в ряде случаев может быть
весьма полезной.
Нужно заметить, что версии этой утилиты для Linux
и для FreeBSD несколько отличаются. Данная статья будет посвящена версии,
входящей в состав FreeBSD по умолчанию (конкретно – FreeBSD 5.3), а в
завершение я скажу несколько слов об особенностях dialog в Linux.
Если в командной строке набрать «dialog» без
параметров, то будет выведена справка по использованию утилиты. Нужно заметить,
что богатством функций она не блещет. Так, с ее помощью можно задать
пользователю вопрос, требующий ответа «Да» или «Нет», отобразить содержимое
файла или результат работы какой-нибудь команды, запросить ввод строки, предложить
выбрать одну или несколько альтернатив из списка, создать меню, отобразить
список некоторых значений в виде дерева. Dialog не позволяет комбинировать
несколько элементов в одном окне (например, группу полей ввода), то есть если
вы решите использовать его для разработки сценария настройки сетевых
интерфейсов, то такие параметры, как IP-адрес, маска, шлюз по умолчанию,
придется запрашивать поочередно в отдельных окнах. Тем не менее на базе этой
утилиты можно строить достаточно «продвинутые» сценарии.