
Раньше в 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