Pop-up com barra progress dinamica.

1. Pop-up com barra progress dinamica.

Eduardo Schuh Pereira
schuhpereira

(usa Ubuntu)

Enviado em 17/04/2017 - 09:06h

Olá amigos

Criei um script onde eu coloco um horário para desligar o sistema. Junto coloquei um parâmetro que faz a contagem regressiva em segundos que restam. Até aí tudo bem, tudo está ok e funcionando.
Quis deixar ele mais "bonitinho", montei o script com yad.

Mas quando ele vai fazer a contagem tudo fica estático.
Abaixo está o script

hora=$(zenity --title="Desligamento do sistema" --text "Em que horário deseja desligar?" --entry)

sudo shutdown --no-wall -h $hora | ENTRY=`zenity --title "Digite sua senha" --password`

zenity --info --title="Desligamento do sistema" --text="O sistema será desligado às: $hora"

# Converte a hora digitada em segundos
entradasegundos=$(date -d "1970-01-01 $hora UTC" +%s)
atualsegundos=$(date -d "1970-01-01 $(date +%T) UTC" +%s)
segundos=$(echo "$entradasegundos - $atualsegundos" | bc)

for ((i=$segundos; i>0; i--))
{
echo $((i*0/$segundos-1))
echo "# Faltam $segundos segundos"
sleep 1
} | yad --title "Desligando..." \
--progress \
--center \
--auto-close --auto-kill


Procurei uma solução mas sem sucesso.


  


2. Re: Pop-up com barra progress dinamica.

José da Silva
zenull

(usa Outra)

Enviado em 17/04/2017 - 11:03h

Não sei no yad, mas no zenity pode fazer algo assim:

(
echo "10" ; sleep 1
echo "# Primeira tarefa" ; sleep 1
echo "20" ; sleep 1
echo "# Segunda tarefa" ; sleep 1
echo "50" ; sleep 1
echo "Terceira tarefa" ; sleep 1
echo "75" ; sleep 1
echo "# Finalizando" ; sleep 1
echo "100" ; sleep 1
) |
zenity --progress \
--title="Teste zenity" \
--text="Testando progresso do zenity..." \
--percentage=0


3. Re: Pop-up com barra progress dinamica.

Eduardo Schuh Pereira
schuhpereira

(usa Ubuntu)

Enviado em 17/04/2017 - 12:37h

Obrigado amigo

Desta forma já havia tentado. Mas não certo. O que acontece é que o pop-up fica na tela e os segundos vão diminuindo até o desligamento.


4. Re: Pop-up com barra progress dinamica.

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 17/04/2017 - 15:21h

Vê se esse exemplo pode ajudar.

#!/bin/bash
# Dispara o comando a ser monitorado pela barra de progresso em background
sleep 10s &
# Armazena o PID do programa disparado em background
pid=$!

# Via subshell verifica se o processo disparado ainda esta em execucao e vai populando a barra de progresso do Zenity
(ctd=1; while [ -d "/proc/$pid" ]; do
echo "# Faltam $ctd segundos para fechar esta janela!"
echo $ctd
sleep 1
((ctd++))
done; echo 100) | zenity --progress --percentage=0 --title='Barra de progresso' --auto-close --no-cancel



5. Re: Pop-up com barra progress dinamica.

Eduardo Schuh Pereira
schuhpereira

(usa Ubuntu)

Enviado em 17/04/2017 - 16:05h

Deu certo!!!!
0/

Muito obrigado!!!


6. Re: Pop-up com barra progress dinamica.

José da Silva
zenull

(usa Outra)

Enviado em 18/04/2017 - 17:33h

Legal! Tomei a liberdade de modificar um detalhe pra ficar com a contagem regressiva e encher toda a barra de progresso:

#!/bin/bash
# Dispara o comando a ser monitorado pela barra de progresso em background
sleep 10s &
# Armazena o PID do programa disparado em background
pid=$!

# Via subshell verifica se o processo disparado ainda esta em execucao e vai populando a barra de progresso do Zenity
(ctd=0; seg=10 ; while [ -d "/proc/$pid" ]; do
echo "# Faltam $seg segundos para fechar esta janela!"
echo $ctd
sleep 1
ctd=$(echo $((ctd+10))) ; ((seg--))
done; echo 100) | zenity --progress --percentage=0 --title='Barra de progresso' --auto-close --no-cancel







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts