Zenity — утилита, которая позволяет выводить на экран диалоговые окна GTK+ из командной строки и скриптов командной оболочки. Zenity это переписанная версия программы gdialog, которая в свою очередь является адаптацией программы dialog для среды GNOME.
Полезно применять, чтобы очеловечить свои скрипты 🙂 Вот пример чего-нибудь простого.
#!/bin/bash
zenity="/usr/bin/zenity"
out="/tmp/output.$$"
what=$(${zenity} --title "Enter dialog" --entry --text "Search:" )
if [ $? -eq 0 ]
then
find / | grep $what | tee ${out} | ${zenity} --width=200 --height=100 --title="Finder" --progress --pulsate --text="Searching..." --auto-kill --auto-close --percentage=10
${zenity} --width=800 --height=600 --title "Results for $what" --text-info --filename="${out}"
else
${zenity} --error --text="No input provided"
fi
Мы получаем скрипт, который ищет то, что мы укажем на диске. Сначала выводит окно с вопросом, что ищем, после ввода, появляется окно с индикатором прогресса, и в следующем окне выводится результат.
Zenity имеет множество возможностей. Вот например:
Опция | Значение |
---|---|
calendar | календарь |
entry | однострочное текстовое поле ввода |
error | сообщение об ошибке |
question | вопросительное сообщение с возможностью ввода утвердительного или отрицательного ответа |
warning | предупреждение |
info | сообщение общего характера |
file-selection | диалоговое окно выбора файла |
list | диалоговое окно списка |
notification | значок уведомления |
progress | отображает статус выполнения текущей операции |
scale | шкала значений с «бегунком» |
text-info | диалог отображения многострочной текстовой информации, который может применяться и как поле ввода |
color-selection | диалог для выбора цвета |
password | диалог для ввода пароля |
forms | диалог форм. Является каркасом, позволяющим вставить формы других типов в одном окне с помощью опций: –add-entry, –add-password, –add-calendar и других |