KirMol Wiki

Добро пожаловать в KirMol Wiki

Инструменты пользователя

Инструменты сайта


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 "Операция завершена успешно!" 15 50

10 и 40 - это высота и ширина окна

Вопрос "Да/Нет" (yes/no)

Использовать в условиях if. Возвращает код выхода 0 (Да) 1 (Нет):

#!/bin/bash
 
if whiptail --title "Подтверждение" --yesno "Вы уверены, что хотите удалить файл?" 15 50; then
    echo "Пользователь выбрал ДА"
else
    echo "Пользователь выбрал НЕТ"
fi

Ввод текста (inputbox)

Ввод данных:

#!/bin/bash
 
NAME=$(whiptail --title "Ввод данных" --inputbox "Как вас зовут?" 10 40 3>&1 1>&2 2>&3)
 
echo "Привет, $NAME!"

Результат сохраняется в переменную через stderr (так как whiptail выводит результат в поток ошибок).
Разбор конструкции 3>&1 1>&2 2>&3: это маневр для перенаправления вывода из stderr в stdout, чтобы сохранить результат в переменную.

Меню выбора (menu)

Выбрать один пункт из списка:

#!/bin/bash
 
CHOICE=$(whiptail --title "Выбор системы" --menu "Выберите ОС:" 15 50 3 \
"1" "Debian" \
"2" "Ubuntu" \
"3" "Linux Mint" 3>&1 1>&2 2>&3)
 
echo "Вы выбрали: $CHOICE"

Список с множественным выбором (checklist)

Пользователь отмечает нужные пункты (пробелом):

#!/bin/bash
 
APPS=$(whiptail --title "Установка" --checklist "Выберите пакеты:" 15 50 5 \
"Nginx" "Веб-сервер" OFF \
"Apache" "Веб-сервер" OFF \
"Git" "Система контроля версий" OFF \
"Nano" "Текстовый редактор" OFF 3>&1 1>&2 2>&3)
 
echo "Вы выбрали: $APPS"
linux/commands/whiptail.1782817512.txt.gz · Последнее изменение: Кирилл М