Установка Синтаксис и опции Примеры использования Диалоговое окно сообщения с кнопкой «ОК» Сообщение с кнопками «Да» и «Нет» Диалоговое окно с календарем Диалоговое окно с контрольным списком Диалоговое окно формы Добавление dialog в bash-сценарии
Окружение
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>...;
--buildlist <text> <height> <width> <list-height> <tag1> <item1> <status1>...
--calendar — диалоговое окно календаря, отображающее день, месяц или год. Синтаксис диалогового окна имеет вид: --calendar <text> <height> <width> <day> <month> <year> ;
--calendar <text> <height> <width> <day> <month> <year>
--checklist — диалоговое окно контрольного списка. Синтаксис диалогового окна имеет вид: --checklist <text> <height> <width> <list height> <tag1> <item1> <status1>...;
--checklist <text> <height> <width> <list height> <tag1> <item1> <status1>...
--dselect — диалоговое окно выбора каталога. Синтаксис диалогового окна имеет вид: --dselect <directory> <height> <width>;
--dselect <directory> <height> <width>
--editbox — диалоговое окно редактирования. Синтаксис диалогового окна имеет вид: --editbox <file> <height> <width>;
--editbox <file> <height> <width>
--form — диалоговое окно формы. Синтаксис диалогового окна имеет вид: --form <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...;
--form <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
--fselect — диалоговое окно выбора файла. Синтаксис диалогового окна имеет вид: --fselect <filepath> <height> <width>;
--fselect <filepath> <height> <width>
--gauge — диалоговое окно индикатора. Синтаксис диалогового окна имеет вид: --gauge <text> <height> <width> [<percent>];
--gauge <text> <height> <width> [<percent>]
--infobox — информационное окно. Синтаксис диалогового окна имеет вид: --infobox <text> <height> <width>;
--infobox <text> <height> <width>
--inputbox — диалоговое поле ввода данных от пользователя. Синтаксис диалогового окна имеет вид: --inputbox <text> <height> <width> [<init>];
--inputbox <text> <height> <width> [<init>]
--inputmenu — диалоговое окно меню ввода. Синтаксис диалогового окна имеет вид: --inputmenu <text> <height> <width> <menu height> <tag1> <item1>...;
--inputmenu <text> <height> <width> <menu height> <tag1> <item1>...
--menu — диалоговое окно меню. Синтаксис диалогового окна имеет вид: --menu <text> <height> <width> <menu height> <tag1> <item1>...;
--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>...;
--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>...;
--mixedgauge <text> <height> <width> <percent> <tag1> <item1>...
--msgbox — диалоговое окно сообщения. Синтаксис диалогового окна имеет вид: --msgbox <text> <height> <width>;
--msgbox <text> <height> <width>
--passwordbox — диалоговое поле пароля. Синтаксис диалогового окна имеет вид: --passwordbox <text> <height> <width> [<init>];
--passwordbox <text> <height> <width> [<init>]
--passwordform — диалоговое окно формы с вводом пароля. Синтаксис диалогового окна имеет вид: --passwordform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...;
--passwordform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
--pause — диалоговое окно паузы. Синтаксис диалогового окна имеет вид: --pause <text> <height> <width> <seconds>;
--pause <text> <height> <width> <seconds>
--prgbox — диалоговое окно для отображения вывода команды. Синтаксис диалогового окна имеет вид: --prgbox <text> <command> <height> <width>;
--prgbox <text> <command> <height> <width>
--programbox — диалоговое окно программного блока. Синтаксис диалогового окна имеет вид: --programbox <text> <height> <width>;
--programbox <text> <height> <width>
--progressbox — диалоговое окно прогресса. Синтаксис диалогового окна имеет вид: --progressbox <text> <height> <width>;
--progressbox <text> <height> <width>
--radiolist — диалоговое окно радиосписка. Синтаксис диалогового окна имеет вид: --radiolist <text> <height> <width> <list height> <tag1> <item1> <status1>...;
--radiolist <text> <height> <width> <list height> <tag1> <item1> <status1>...
--rangebox — диалоговое окно с выбором диапазона значений. Синтаксис диалогового окна имеет вид: --rangebox <text> <height> <width> <min-value> <max-value> <default-value>;
--rangebox <text> <height> <width> <min-value> <max-value> <default-value>
--tailbox — диалоговое окно отображения текста из файла. Синтаксис диалогового окна имеет вид: --tailbox <file> <height> <width>;
--tailbox <file> <height> <width>
--tailboxbg — диалоговое окно отображения текста из файла в качестве фоновой задачи. Синтаксис диалогового окна имеет вид: --tailboxbg <file> <height> <width>;
--tailboxbg <file> <height> <width>
--textbox — диалоговое окно с текстовым полем. Синтаксис диалогового окна имеет вид: --textbox <file> <height> <width>;
--textbox <file> <height> <width>
--timebox — диалоговое окно, позволяющее выбрать время. Синтаксис диалогового окна имеет вид: --timebox <text> <height> <width> <hour> <minute> <second>;
--timebox <text> <height> <width> <hour> <minute> <second>
--treeview — диалоговое окно отображения данных в виде дерева. Синтаксис диалогового окна имеет вид: --treeview <text> <height> <width> <list-height> <tag1> <item1> <status1> <depth1>...;
--treeview <text> <height> <width> <list-height> <tag1> <item1> <status1> <depth1>...
--yesno — диалоговое окно «Да»/«Нет». Синтаксис диалогового окна имеет вид: --yesno <text> <height> <width>.
--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
Для создания 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
Результат выполнения скрипта:
В наших статьях можно подробнее ознакомиться с использованием утилит создания интерактивных меню в РЕД ОС:
Zenity — утилита для создания диалоговых окон из командной строки или с помощью сценариев;
Yad — утилита для создания диалоговых окон с использованием терминала или сценариев.
Дата последнего изменения: 24.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.