linux:commands:whiptail
Это старая версия документа!
Содержание
Команда whiptail
О команде whiptail
Команда whiptail - Это утилита командной строки, которая предназначена для создания текстовых графических интерфейсов (TUI) в окне терминала. Является альтернативой утилиты dialog.
Whiptail использует библиотеку newt и позволяет создавать диалоговые окна, меню, формы и запросы для скриптов на Bash.
Опции whiptail
- –help - Показать справочную информацию по команде
- –version - Показать информацию о версии whiptail
Основные типы окон
| Тип окна | Описание |
|---|---|
| –title | Заголовок окна |
| –msgbox | Информационное окно с кнопкой «OK» |
| –yesno | Вопрос с выбором «Да» или «Нет» |
| –inputbox | Поле для ввода текста пользователем |
| –passwordbox | Поле для ввода пароля (символы скрыты) |
| –menu | Список элементов, из которых можно выбрать один |
| –checklist | Список элементов, где можно выбрать несколько (через пробел) |
| –radiolist | Список, где можно выбрать только один элемент (радиокнопки) |
Использование whiptail
Информационное сообщение (msgbox)
Вывести текст и ждет нажатия Enter или OK:
whiptail --title "Заголовок" --msgbox "Операция завершена успешно!" 10 40
10 и 40 - это высота и ширина окна
Вопрос "Да/Нет" (yes/no)
Использовать в условиях if. Возвращает код выхода 0 (Да) 1 (Нет):
#!/bin/bash if whiptail --title "Подтверждение" --yesno "Вы уверены, что хотите удалить файл?" 10 50; then echo "Пользователь выбрал ДА" else echo "Пользователь выбрал НЕТ" fi
Ввод текста (inputbox)
Результат сохраняется в переменную через stderr (так как whiptail выводит результат в поток ошибок):
#!/bin/bash NAME=$(whiptail --title "Ввод данных" --inputbox "Как вас зовут?" 10 40 3>&1 1>&2 2>&3) echo "Привет, $NAME!"
Разбор конструкции 3>&1 1>&2 2>&3: это маневр для перенаправления вывода из stderr в stdout, чтобы сохранить результат в переменную.
linux/commands/whiptail.1782813788.txt.gz · Последнее изменение: — Кирилл М
