
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