Como fazer uma caixa de diálogo de progresso para Bash no XFCE?

Como fazer uma caixa de diálogo de progresso para Bash no XFCE?

Anteriormente, no KDE, isso era simples - chamei o KDialog com o número de etapas, recebi o identificador DCOP em troca, depois chamei o dcop com essa referência e etapa, e a caixa de diálogo de progresso foi atualizada.

No entanto, agora o DCOP está obsoleto e, desde que mudei do KDE 3.5.10 para o XFCE, pensei que seria uma boa ideia, em vez de converter meu script de KDialog+DCOP para KDialog+DBUS, eu migrar para a caixa de diálogo de progresso do XFCE.

Então, como você cria uma caixa de diálogo de progresso para fins de Bash no XFCE?Finalidade do Bash = Eu executo alguns cálculos no Bash, mas o progresso é mostrado na forma da GUI, como uma bela caixa de diálogo na área de trabalho.

Responder1

Você pode usardiálogoUtilitário. Pode funcionar tantodentro e foraum terminal.

Para obtê-lo no servidor X, você pode usar seuxdialogougdialog/zenityvariante. Observe que o zenity é recomendado para XFCE, já que utiliza GTK+. Na verdade, acho que o Kdialog é uma variante do KDE do Xdialog.

Aqui está um script Zenity simples, rodando no servidor X com uma caixa sim/não:

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

Aqui está um simplestutorialcom vários exemplos sobre os diferentes diálogos disponíveis. E também háum bom tutorialsobre zenidade.

Sobre sua caixa de diálogo gráfica de progresso, háum dedicado para esse fim. Aqui está o script de exemplo da documentação:

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

informação relacionada