Найти в Дзене
LITVINOV-UPGRADE-LINUX

Утилита dialog

Утилита позволяет выводит диалоговые сообщения в терминале. sudo apt update
sudo apt install dialog astra@astra:~$ apt-cache policy dialog
dialog:
Установлен: 1.3-20190211-1+b2
Кандидат: 1.3-20190211-1+b2
Таблица версий:
*** 1.3-20190211-1+b2 900
900 https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-update 1.7_x86-64/main amd64 Packages
900 https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base 1.7_x86-64/main amd64 Packages
100 /var/lib/dpkg/status
1.3-20190211-1 900
900 https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main 1.7_x86-64/main amd64 Packages dialog --title "Информация" --msgbox "Это тестовое сообщение." 10 30
clear dialog --title "Подтверждение" --yesno "Вы уверены?" 10 30
choice=$?
clear
if [ $choice -eq 0 ]; then
echo "Вы выбрали Да."
else
echo "Вы выбрали Нет."
fi dialog --title "Ввод данных" --inputbox "Введите ваше имя:" 10 30 2> /tmp/input.txt
clear
name=$(cat /tmp/input.txt)
echo
Оглавление

Введение

Утилита позволяет выводит диалоговые сообщения в терминале.

Установка

sudo apt update
sudo apt install dialog

Расположение в репозиториях

astra@astra:~$ apt-cache policy dialog
dialog:
Установлен: 1.3-20190211-1+b2
Кандидат: 1.3-20190211-1+b2
Таблица версий:
*** 1.3-20190211-1+b2 900
900 https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-update 1.7_x86-64/main amd64 Packages
900 https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base 1.7_x86-64/main amd64 Packages
100 /var/lib/dpkg/status
1.3-20190211-1 900
900 https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main 1.7_x86-64/main amd64 Packages

Примеры диалогов

dialog --title "Информация" --msgbox "Это тестовое сообщение." 10 30
clear

Сообщение
Сообщение

dialog --title "Подтверждение" --yesno "Вы уверены?" 10 30
choice=$?
clear
if [ $choice -eq 0 ]; then
echo "Вы выбрали Да."
else
echo "Вы выбрали Нет."
fi

Диалог выбора Да-Нет
Диалог выбора Да-Нет

dialog --title "Ввод данных" --inputbox "Введите ваше имя:" 10 30 2> /tmp/input.txt
clear
name=$(cat /tmp/input.txt)
echo "Вы ввели: $name"

Поле ввода
Поле ввода

dialog --title "Выбор действия" --menu "Выберите опцию:" 15 40 4 \
1 "Обновить систему" \
2 "Установить программу" \
3 "Настройки" \
4 "Выход" 2> /tmp/menu.txt
clear
choice=$(cat /tmp/menu.txt)
echo "Вы выбрали: $choice"

Выбор
Выбор

dialog --title "Выбор пакетов" --checklist "Отметьте пакеты:" 15 40 4 \
1 "Apache" off \
2 "MySQL" off \
3 "PHP" off \
4 "Nginx" off 2> /tmp/checklist.txt
clear
selected=$(cat /tmp/checklist.txt)
echo "Выбрано: $selected"

Диалог выбора нескольких пунктов
Диалог выбора нескольких пунктов

dialog --title "Выбор ОС" --radiolist "Выберите систему:" 15 40 4 \
1 "Debian" on \
2 "Ubuntu" off \
3 "Fedora" off \
4 "Arch" off 2> /tmp/radiolist.txt
clear
os=$(cat /tmp/radiolist.txt)
echo "Выбрана ОС: $os"

Диалог выбора только одного пункта.
Диалог выбора только одного пункта.

for i in $(seq 1 100); do
echo $i | dialog --title "Прогресс" --gauge "Загрузка..." 10 30 0
sleep 0.1
done

Прогресс выполнения
Прогресс выполнения

dialog --title "Выбор даты" --calendar "Укажите дату:" 0 0 2> /tmp/date.txt
clear
date=$(cat /tmp/date.txt)

Календарь
Календарь

dialog --title "Выбор файла" --fselect "$HOME/" 15 50 2> /tmp/file.txt
clear
file=$(cat /tmp/file.txt)
echo "Выбран файл: $file"
echo "Выбрана дата: $date"

Выбор файлы
Выбор файлы

Вывод

Утилита достаточно удобная для работы в консоли. В Astra Linux не всегда установлена по умолчанию - требует дополнительной установки.
Важно!
Не очищает автоматически экран и требует после диалога вызывать команду clear.