¿Cómo hacer un diálogo de progreso para Bash en XFCE?

¿Cómo hacer un diálogo de progreso para Bash en XFCE?

Anteriormente, en KDE, esto era simple: llamé a KDialog con una cantidad de pasos, obtuve el identificador de DCOP a cambio, luego llamé a dcop con esa referencia y paso, y el diálogo de progreso se actualizó.

Sin embargo, ahora DCOP está obsoleto y desde que pasé de KDE 3.5.10 a XFCE, pensé que sería una buena idea que, en lugar de convertir mi script de KDialog+DCOP a KDialog+DBUS, migrara al cuadro de diálogo de progreso de XFCE.

Entonces, ¿cómo se crea un diálogo de progreso para propósitos de Bash en XFCE?Propósito de Bash = Realizo algunos cálculos en Bash, pero el progreso se muestra en forma de GUI, como un bonito cuadro de diálogo en el escritorio.

Respuesta1

Puedes usardiálogoutilidad. Puede funcionar ambosdentro y fuerauna terminal.

Para obtenerlo en el servidor X, puede usar suxdiálogoodiálogo/zenityvariante. Tenga en cuenta que se recomienda zenity para XFCE, ya que utiliza GTK+. De hecho, creo que Kdialog es una variante KDE de Xdialog.

Aquí hay un script Zenity simple, que se ejecuta en el servidor X con un cuadro de sí/no:

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

Aquí tienes un sencillotutorialcon varios ejemplos sobre los diferentes diálogos disponibles. Y también hayun buen tutorialsobre el zenismo.

Acerca del cuadro de diálogo gráfico de progreso, hayuno dedicado para este propósito. Aquí está el script de muestra de la documentación:

#!/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

información relacionada