Утилита zenity — инструмент в ОС Linux, с помощью которого можно создавать простые диалоговые окна с графическим интерфейсом (GUI) для shell-скриптов. Он основан на GTK+ и позволяет взаимодействовать со скриптами через:
- окна;
- кнопки;
- поля ввода текста;
- диалоги выбора файлов и так далее.
Все это делает возможным создание интерактивных bash-скриптов без необходимости разработки полноценного приложения.
В этой статье мы покажем несколько примеров использование утилиты zenity в ОС Linux.
Содержание:
- Установка инструмента zenity в Linux
- Вывод простого текста в диалоговом окне zenity
- Отображение предупреждений и ошибок
- Отображение диалогового окна с вопросами
- Выбор файлов из каталога с помощью zenity
- Использование поля для ввода с помощью zenity
- Отображение индикатора выполнения операции
- Написание скрипта для резервного копирования директорий с помощью zenity
- Выводы
Установка инструмента zenity в Linux
Программа zenity по умолчанию предустановлена в большинстве популярных дистрибутивов Linux. Чтобы проверить, есть ли в ОС утилита zenity, выполните следующую команду:
Если предыдущая команда не вывела на экран версию утилиты, значит в Вашем Linux этого инструмента нет. Примените одну из следующих команд, чтобы установить zenity на ПК.
Читайте также: 15 примеров использования apt.
Для Debian / Ubuntu Linux:
Для RHEL / CentOS / Fedora Linux:
Чтобы ознакомиться с синтаксисом и опциями команды zenity, выполните в терминале:
Вывод простого текста в диалоговом окне zenity
Для отображения информационного текста в диалоговом окне используйте команду zenity с опциями --info и --text, в качестве значения последней укажите нужное сообщение. Например:
Читайте также: Как изменять стили вывода команды echo в Linux.
Отображение предупреждений и ошибок
С помощью zenity Вы можете предупредить пользователя о каком-то действии. Для этого следует использовать опцию --warning. К примеру:
У Вас также есть возможность выводить сообщения об ошибках в диалоговом окне. С этой задачей поможет справиться параметр --error:
Отображение диалогового окна с вопросами
В коде сложных скриптов может применяться ветвление — операция, которая используется, когда выполнение определенного набора команд должно зависеть от того, выполнено условие или нет.
Например, с помощью функционала zenity можно задать пользователю вопрос, хочет ли он продолжать выполнение какой-либо операции. Для реализации такой задачи следует использовать опцию --question:
Выбор файлов из каталога с помощью zenity
Скрипты в Linux часто применяются для обработки объектов файловой системы. И с помощью zenity можно предоставить пользователю возможность выбрать файл из каталога. Чтобы это сделать, используйте zenity с опцией --file-selection. Например:
Читайте также: Как установить файловый менеджер Ranger в Linux.
После выбора файла предыдущая конструкция команд также отобразит в терминале абсолютный путь к указанному объекту из файловой системы.
Использование поля для ввода с помощью zenity
В диалоговое окно zenity можно добавить поле для ввода. Чтобы реализовать данный функционал, следует применить опцию --entry. Например, следующая конструкция команд запросит у пользователя ввод его имени и затем выведет его в терминале:
Отображение индикатора выполнения операции
В Linux можно отслеживать время выполнения операций с помощью индикатора прогресса. У команды zenity есть опция --progress, которая позволяет следить за процессом выполнения задачи. Например:
Читайте также: Команда pv в Linux с примерами.
Написание скрипта для резервного копирования директорий с помощью zenity
Давайте попробуем на практике написать скрипт, в котором будем использовать утилиту zenity. Представленный ниже код позволит создавать резервные копии каталогов в файловой системе Linux:
Важно: рекомендуем детально ознакомиться с кодом и комментариями к нему.
После запуска сценария Bash у пользователя будет возможность выбрать папку для резервного копирования.
Читайте также: Скрипты Bash для организации папок и генерации паролей в Linux.
Затем пользователь должен выбрать директорию, в которой будет сохранен архив с резервной копией.
Далее следует ввести желаемое название для архива.
Перед созданием резервной копии скрипт запросит у пользователя подтверждение на выполнение операции.
После нажатия на кнопку Yes запустится процесс создания резервной копии, ход выполнения которого можно отслеживать с помощью индикатора прогресса.
Читайте также: 5 скриптов Bash для автоматизации задач в Linux.
Наконец скрипт сообщит, что файл архива с резервной копией сохранен в ранее указанной папке.
Выводы
Теперь Вы знаете, что такое утилита zenity и как можно использовать ее функционал в ОС Linux. Мы также показали Вам практические примеры ее применения в скриптах Bash.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.









































