2.8.2.3 Dialog – утилита для создания диалоговых окон в консольных приложениях
Скачать документ Установка
Синтаксис и опции
Примеры использования
Диалоговое окно сообщения с кнопкой «ОК»
Сообщение с кнопками «Да» и «Нет»
Диалоговое окно с календарем
Диалоговое окно с контрольным списком
Диалоговое окно формы
Добавление dialog в bash-сценарии
Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Рабочая станция
- Версия ПО в РЕД ОС 7.3: dialog 1.3-20171209
Dialog — это утилита для построения консольных интерфейсов. Диалоговые окна можно легко включить в сценарии оболочки для взаимодействия с пользователями. Dialog позволяет создавать интерфейсы на любом консольном языке.
Установка
Пакет диалогов по умолчанию не установлен в РЕД ОС. Установить dialog можно, выполнив следующую команду в терминале (потребуются права администратора):
sudo dnf install dialog
Команда устанавливает пакет диалогов и необходимые библиотеки для системы.
Синтаксис и опции
Утилита доступна для запуска через терминал при помощи команды следующего вида:
dialog [опции]
Основные опции:
-h, --help — вывести справку по работе с утилитой;
--version — вывести версию утилиты;
--about — просмотреть информацию о программе;
--help-general — показать общие параметры.
Опции общего назначения:
--title="Заголовок" — задает заголовок диалога;
--backtitle="Заголовок" — задает строку заголовка, которая будет отображаться на фоне в верхней части экрана;
--ascii-lines — рисует знаки «---», «|», «+++» вместо обычных линий рамок;
--scrollbar — добавляет полосы прокрутки;
--defaultno — добавляет кнопку «Нет» по умолчанию;
--clear — очищает экран перед отображением диалога.
Опции утилиты, отвечающие за вид диалогового окна:
--buildlist — диалоговое окно списка сборки, отображающее списки с невыбранными и выбранными элементами. Синтаксис диалогового окна имеет вид:
--buildlist <text> <height> <width> <list-height> <tag1> <item1> <status1>...
;--calendar — диалоговое окно календаря, отображающее день, месяц или год. Синтаксис диалогового окна имеет вид:
--calendar <text> <height> <width> <day> <month> <year>
;--checklist — диалоговое окно контрольного списка. Синтаксис диалогового окна имеет вид:
--checklist <text> <height> <width> <list height> <tag1> <item1> <status1>...
;--dselect — диалоговое окно выбора каталога. Синтаксис диалогового окна имеет вид:
--dselect <directory> <height> <width>
;--editbox — диалоговое окно редактирования. Синтаксис диалогового окна имеет вид:
--editbox <file> <height> <width>
;--form — диалоговое окно формы. Синтаксис диалогового окна имеет вид:
--form <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
;--fselect — диалоговое окно выбора файла. Синтаксис диалогового окна имеет вид:
--fselect <filepath> <height> <width>
;--gauge — диалоговое окно индикатора. Синтаксис диалогового окна имеет вид:
--gauge <text> <height> <width> [<percent>]
;--infobox — информационное окно. Синтаксис диалогового окна имеет вид:
--infobox <text> <height> <width>
;--inputbox — диалоговое поле ввода данных от пользователя. Синтаксис диалогового окна имеет вид:
--inputbox <text> <height> <width> [<init>]
;--inputmenu — диалоговое окно меню ввода. Синтаксис диалогового окна имеет вид:
--inputmenu <text> <height> <width> <menu height> <tag1> <item1>...
;--menu — диалоговое окно меню. Синтаксис диалогового окна имеет вид:
--menu <text> <height> <width> <menu height> <tag1> <item1>...
;--mixedform — диалоговое окно смешанной формы, состоящее из меток и полей. Синтаксис диалогового окна имеет вид:
--mixedform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1> <itype>...
;--mixedgauge — диалоговое окно смешанного счетчика. Синтаксис диалогового окна имеет вид:
--mixedgauge <text> <height> <width> <percent> <tag1> <item1>...
;--msgbox — диалоговое окно сообщения. Синтаксис диалогового окна имеет вид:
--msgbox <text> <height> <width>
;--passwordbox — диалоговое поле пароля. Синтаксис диалогового окна имеет вид:
--passwordbox <text> <height> <width> [<init>]
;--passwordform — диалоговое окно формы с вводом пароля. Синтаксис диалогового окна имеет вид:
--passwordform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
;--pause — диалоговое окно паузы. Синтаксис диалогового окна имеет вид:
--pause <text> <height> <width> <seconds>
;--prgbox — диалоговое окно для отображения вывода команды. Синтаксис диалогового окна имеет вид:
--prgbox <text> <command> <height> <width>
;--programbox — диалоговое окно программного блока. Синтаксис диалогового окна имеет вид:
--programbox <text> <height> <width>
;--progressbox — диалоговое окно прогресса. Синтаксис диалогового окна имеет вид:
--progressbox <text> <height> <width>
;--radiolist — диалоговое окно радиосписка. Синтаксис диалогового окна имеет вид:
--radiolist <text> <height> <width> <list height> <tag1> <item1> <status1>...
;--rangebox — диалоговое окно с выбором диапазона значений. Синтаксис диалогового окна имеет вид:
--rangebox <text> <height> <width> <min-value> <max-value> <default-value>
;--tailbox — диалоговое окно отображения текста из файла. Синтаксис диалогового окна имеет вид:
--tailbox <file> <height> <width>
;--tailboxbg — диалоговое окно отображения текста из файла в качестве фоновой задачи. Синтаксис диалогового окна имеет вид:
--tailboxbg <file> <height> <width>
;--textbox — диалоговое окно с текстовым полем. Синтаксис диалогового окна имеет вид:
--textbox <file> <height> <width>
;--timebox — диалоговое окно, позволяющее выбрать время. Синтаксис диалогового окна имеет вид:
--timebox <text> <height> <width> <hour> <minute> <second>
;--treeview — диалоговое окно отображения данных в виде дерева. Синтаксис диалогового окна имеет вид:
--treeview <text> <height> <width> <list-height> <tag1> <item1> <status1> <depth1>...
;--yesno — диалоговое окно «Да»/«Нет». Синтаксис диалогового окна имеет вид:
--yesno <text> <height> <width>
.
Параметры диалоговых окон:
--text — задает заголовок или содержимое поля;
--height — задает высоту диалогового окна;
--width — задает ширину диалогового окна;
--list-height — высота списка.
Примеры использования
Диалоговое окно сообщения с кнопкой «ОК»
Окно сообщения отображает сообщение и требует от пользователя нажать кнопку «ОК».
Формат сообщения следующий: --msgbox <text> <height> <width>
Для вывода на экран сообщения "Hello world!", необходимо воспользоваться следующей командой в консоли:
dialog --title "Сообщение" --msgbox "Добро пожаловать!" 8 20
Результат выполнения этой команды выглядит следующим образом:
Сообщение с кнопками «Да» и «Нет»
Параметр --yesno — предоставляет простое сообщение с кнопками «Да» и «Нет».
Формат сообщения следующий: --yesno <text> <height> <width>
Например, для вывода сообщения введите в терминал команду:
dialog --title "Запуск" --yesno "Добро пожаловать! \nЭто запуск утилиты Dialog!" 9 30
После запуска будет выведено следующее диалоговое окно:
Программа будет ждать пользовательского выбора. Нажмите кнопку «Да», «Нет» или клавишу «Esc».
Диалоговое окно с календарем
Календарь — предоставляет календарь для отображения выбранной даты.
Формат календаря: --calendar <text> <height> <width> <day> <month> <year>
dialog --calendar "Календарь" 5 45 01 11 2024
Диалоговое окно с контрольным списком
Контрольный список — отображает несколько записей, каждую из которых можно включить или отключить.
Формат списка: --checklist <text> <height> <width> <list height> <tag1> <item1> <status1>...
dialog --checklist "список" 15 40 12 "мандарины" 5 "on" "яблоки" 2 "off" "киви" 4 "on"
Диалоговое окно формы
Форма позволяет создать форму с метками и текстовыми полями для заполнения.
Формат формы следующий: --form <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
dialog --form "Введите" 20 30 20 "Имя" 2 1 "" 4 5 6 7
Добавление dialog в bash-сценарии
Для создания bash-скрипта выполните следующий алгоритм действий:
1. Для создания пустого файла скрипта введите команду:
touch newscript.sh
2. Для открытия файла используйте любой текстовый редактор, например:
nano newscript.sh
3. Впишите в файл следующие строки и сохраните файл:
#! /bin/sh
DIALOG=${DIALOG=dialog}
$DIALOG --backtitle "Окно для выбора устройств" \
--title "Выбор устройств" --clear \
--radiolist "Список устройств" 20 61 5 \
"Aqara LED Light Bulb" "Умная лампа" ON \
"Yeelight Lightstrip Pro" "Умная светодиодная лента" off \
"Yeelight Ceiling Light" "Умный потолочный светильник" off \
"Aqara Gas Sensor" "Датчик газа" off \
"Aqara TVOC Air Quality Monitor" "Монитор качества воздуха" off
4. Для предоставления прав на выполнение файла выполните команду:
chmod +x newscript.sh
5. Для запуска скрипта выполните команду:
./newscript.sh
Результат выполнения скрипта:
В наших статьях можно подробнее ознакомиться с использованием утилит создания интерактивных меню в РЕД ОС:
Дата последнего изменения: 24.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.