linux:commands:whiptail
Различия
Показаны различия между двумя версиями страницы.
| linux:commands:whiptail [2026/10/03 10:49] – создано Кирилл Молчанов | linux:commands:whiptail [2026/10/03 10:49] (текущий) – внешнее изменение (Дата неизвестна) 127.0.0.1 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== Команда whiptail ====== | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== О команде whiptail ===== | ||
| + | |||
| + | Команда whiptail - Это утилита командной строки, | ||
| + | |||
| + | Whiptail использует библиотеку newt и позволяет создавать диалоговые окна, меню, формы и запросы для скриптов на Bash. | ||
| + | |||
| + | ===== Установка whiptail ===== | ||
| + | |||
| + | Устанавливаем whiptail: | ||
| + | <code bash> | ||
| + | sudo apt install whiptail | ||
| + | </ | ||
| + | |||
| + | ===== Опции whiptail ===== | ||
| + | |||
| + | * **--help** - Показать справочную информацию по команде | ||
| + | * **--version** - Показать информацию о версии whiptail | ||
| + | * **--clear** - Очистит экран при выходе | ||
| + | * **--defaultno** - Отключает кнопку по умолчанию | ||
| + | * **--default-item** - Устанавливает строку по умолчанию | ||
| + | |||
| + | ===== Опции box whiptail ===== | ||
| + | |||
| + | ^ Тип окна | ||
| + | | **--title** | ||
| + | | **--msgbox** | ||
| + | | **--yesno** | ||
| + | | **--inputbox** | ||
| + | | **--passwordbox** | Поле для ввода пароля (символы скрыты) | ||
| + | | **--menu** | ||
| + | | **--checklist** | ||
| + | | **--radiolist** | ||
| + | |||
| + | ===== Использование whiptail ===== | ||
| + | |||
| + | ==== Информационное сообщение (msgbox) ==== | ||
| + | |||
| + | Вывести текст и ждет нажатия Enter или OK: | ||
| + | <code bash> | ||
| + | whiptail --title " | ||
| + | </ | ||
| + | |||
| + | 10 и 40 - это высота и ширина окна | ||
| + | |||
| + | ==== Вопрос " | ||
| + | |||
| + | Использовать в условиях if. Возвращает код выхода 0 (Да) 1 (Нет): | ||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | |||
| + | if whiptail --title " | ||
| + | echo " | ||
| + | else | ||
| + | echo " | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | ==== Ввод текста (inputbox) ==== | ||
| + | |||
| + | Ввод данных: | ||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | |||
| + | NAME=$(whiptail --title " | ||
| + | |||
| + | echo " | ||
| + | </ | ||
| + | |||
| + | Результат сохраняется в переменную через stderr (так как whiptail выводит результат в поток ошибок). \\ | ||
| + | Разбор конструкции 3>&1 1>&2 2>& | ||
| + | |||
| + | ==== Меню выбора (menu) ==== | ||
| + | |||
| + | Выбрать один пункт из списка: | ||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | |||
| + | CHOICE=$(whiptail --title " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | echo "Вы выбрали: | ||
| + | </ | ||
| + | |||
| + | ==== Список с множественным выбором (checklist) ==== | ||
| + | |||
| + | Пользователь отмечает нужные пункты (пробелом): | ||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | |||
| + | APPS=$(whiptail --title " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | echo "Вы выбрали: | ||
| + | |||
| + | if [ -z " | ||
| + | echo " | ||
| + | exit 0 | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | |||
