Как создать диалоговое окно прогресса для Bash в XFCE?

Как создать диалоговое окно прогресса для Bash в XFCE?

Раньше в KDE это было просто — я вызывал KDialog с указанием количества шагов, получал в ответ дескриптор DCOP, затем вызывал dcop с этой ссылкой и шагом, и диалоговое окно хода выполнения обновлялось.

Однако теперь DCOP устарел, и поскольку я перешел с KDE 3.5.10 на XFCE, я подумал, что было бы хорошей идеей вместо преобразования моего скрипта из KDialog+DCOP в KDialog+DBUS перейти на диалоговое окно хода выполнения XFCE.

Так как же создать диалоговое окно хода выполнения для Bash в XFCE?Назначение Bash = Я выполняю некоторые вычисления в Bash, но ход выполнения отображается в графическом интерфейсе, в виде удобного диалогового окна на рабочем столе.

решение1

Вы можете использоватьдиалогУтилита. Она может работать каквнутри и снаружитерминал.

Чтобы получить его на X-сервере, вы можете использовать егоxdialogилиgdialog/zenityвариант. Обратите внимание, что zenity рекомендуется для XFCE, так как он использует GTK+. На самом деле, я думаю, что Kdialog — это вариант Xdialog для KDE.

Вот простой скрипт Zenity, работающий на X-сервере с полем «да/нет»:

DIALOG=zenity
$DIALOG --title " My first dialog" --clear \
--yesno "Hi, this is my first dialog" 10 30

Вот простойруководствос различными примерами о различных доступных диалогах. И есть такжехороший уроко зените.

О вашем графическом диалоговом окне прогресса естьодин, предназначенный для этой цели. Вот пример скрипта документации:

#!/bin/sh
(
echo "10" ; sleep 1
echo "# Updating mail logs" ; sleep 1
echo "20" ; sleep 1
echo "# Resetting cron jobs" ; sleep 1
echo "50" ; sleep 1
echo "This line will just be ignored" ; sleep 1
echo "75" ; sleep 1
echo "# Rebooting system" ; sleep 1
echo "100" ; sleep 1
) |
zenity --progress \
  --title="Update System Logs" \
  --text="Scanning mail logs..." \
  --percentage=0

if [ "$?" = -1 ] ; then
        zenity --error \
          --text="Update canceled."
fi

Связанный контент