
Zuvor war dies in KDE einfach: Ich rief KDialog mit der Anzahl der Schritte auf, erhielt als Antwort den DCOP-Handle, rief dann dcop mit dieser Referenz und diesem Schritt auf und der Fortschrittsdialog wurde aktualisiert.
DCOP ist mittlerweile jedoch veraltet und da ich von KDE 3.5.10 auf XFCE umgestiegen bin, dachte ich, es wäre eine gute Idee, statt mein Skript von KDialog+DCOP auf KDialog+DBUS zu konvertieren, zum XFCE-Fortschrittsdialog zu migrieren.
Wie erstellen Sie also einen Fortschrittsdialog für Bash-Zwecke in XFCE?Bash-Zweck = Ich führe einige Berechnungen in Bash durch, aber der Fortschritt wird auf GUI-Weise als netter Dialog auf dem Desktop angezeigt.
Antwort1
Sie könnenDialogDienstprogramm. Es kann beides funktionierendrinnen und draußenein Terminal.
Um es auf den X-Server zu bekommen, können Sie dessenxdialogodergdialog/zenityVariante. Beachten Sie, dass Zenity für XFCE empfohlen wird, da es GTK+ verwendet. Tatsächlich glaube ich, dass Kdialog eine KDE-Variante von Xdialog ist.
Hier ist ein einfaches Zenity-Skript, das auf einem X-Server mit einem Ja/Nein-Feld läuft:
DIALOG=zenity
$DIALOG --title " My first dialog" --clear \
--yesno "Hi, this is my first dialog" 10 30
Hier ist eine einfacheLernprogrammmit verschiedenen Beispielen zu den verschiedenen verfügbaren Dialogen. Und es gibt auchein schönes Tutorialüber Zenity.
Über Ihren grafischen Fortschrittsdialog gibt eseine für diesen Zweck bestimmte. Hier ist das Beispielskript der Dokumentation:
#!/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