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

1

Anteriormente, no KDE, isso era simples - eu chamei o KDialog com várias etapas, recebi o DCOP em retorno, então chamei o dcop com essa referência e etapa, e a caixa de diálogo do progresso foi atualizada.

No entanto, agora o DCOP é obsoleto, e desde que mudei do KDE 3.5.10 para o XFCE, achei que seria uma boa idéia converter meu script do KDialog + DCOP para o KDialog + DBUS para o diálogo de progresso do XFCE.

Então, como você constrói o diálogo de progresso para fins de Bash no XFCE? Bash purpose = Eu executo alguns cálculos no Bash, mas o progresso é mostrado no modo GUI, como uma boa janela no desktop. / p>     

por greenoldman 17.03.2012 / 17:13

1 resposta

2

Você pode usar o utilitário diálogo . Ele pode funcionar tanto dentro e fora de um terminal.

Para obtê-lo no servidor X, você pode usar seu xdialog ou gdialog / zenity variante. Tome nota que zenity é recomendado para XFCE, desde o seu uso GTK +. Na verdade, acho que o Kdialog é uma variante do Kdialog para o KDE.

Aqui está um script Zenity simples, executado 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 simples tutorial com vários exemplos sobre o diálogo diferente acessível. E há também um bom tutorial sobre o zenity.

Sobre o seu diálogo de progresso gráfico, há um dedicado para esse fim . Aqui está o exemplo de script 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
    
por 17.03.2012 / 19:15