progress bar

1. progress bar

Raul
raulcastro

(usa Fedora)

Enviado em 19/06/2012 - 16:44h

Olá pessoal,

alguém saberia me informar qual é o comando que pelo menos me ajuda a criar uma barra de progresso?


  


2. Ajuda

3. use o zenity

M4iir1c10
m4iir1c10

(usa Arch Linux)

Enviado em 19/06/2012 - 17:45h

Dependendo de qual ambiente voce esta, voce deve ter o zenity (gnome) ou o Kdialog (KDE), como eu uso o zenity com mais frequencia, aqui esta a maneira.

find /home | zenity --progress --width 350 --pulsate --text "Testando a barra de progresso do Zenity" --title "Procurando qualquer coisa com o Zenity"


Nesse exemplo voce usa o comando que voce quer monitorar e manda para o zenity a informacao, o zenity vai ficar fazendo um movimento com a barra muito visto no ubuntu... quando o comando terminar, nesse caso quando find terminar de procurar arquivos no home, a barra de progresso vai ficar toda cheia.

Caso voce quer acompanhar a porcentagem de algum download usando o wget, para acompanhar porcentagem zenity procura na saida do comando algo que possa ser referido como a porcentagem, no nosso exemplo wget ja mostra a porcentagem...

wget --progress=bar:force "http://www.vivaolinux.com.br/arquivo.txt" -O /sua/pasta/para/o/arquivo.txt 2>&1 | zenity --title="Transferencia de arquivo em progresso!" --progress --auto-close --auto-kill

como voce viu ali a inclusao do auto-close e auto-kill vai fechar a janela e matar o processo assim que o wget terminar o download...

Claro se a sua internet e rapida voce nem vai ver o download direito, entao vamos fazer um teste limitando o uso da rede, espero que o Fabio nao se importe com um download do logo tao lento...

wget --progress=bar:force --limit-rate=250 "http://img.vivaolinux.com.br/imagens/layout/linux-logo-002.jpg" -O/dev/null 2>&1 | zenity --title="Baixando o Logo do VOL" --progress --auto-close --auto-kill

Agora se voce quizer uma coisa bem bonitinha voce deve usar o zenity de acordo com o proposito pelo qual ele foi criado, script... vamos fazer a conversao de algumas imagens, como eu disse antes o zenity precisa de numeros como referencia da porcentagem da tarefa, entao vamos analizar esse script:


#contando as imagens
numero_imagem=$(ls | grep -e ".jpg" -e ".png" | wc -l)
echo "$numero_imagem arquivos serao modificados"
conta_agora=0;
i=1;
(for arquivos in *.jpg *.png
do mv "$arquivos" "$i.$arquivos" 2> /dev/null
let conta_agora=conta_agora+1
let i=i+1;
#calculando a porcentagem
porcento=$(echo "scale=2; $conta_agora*100/$numero_imagem" | bc)
echo "$porcento"
done) | zenity --progress --auto-close --title="Arquivos Restantes" \
--text="Processando os arquivos..." --percentage=0


O segredo todo esta nesse comando que calcula quantas imagens foram processadas e quantas faltam da seguinte maneira

porcento=$(echo "scale=2; $conta_agora*100/$numero_imagem" | bc) 

calculando $conta_agora dividido pelo numero total de imagens vezes 100, entao se o numero de imagens processadas dividido pela quantidade total der 0.32 vezes 100 e igual a 32 sendo assim 32% completado.
scale=2 siginifica que voce quer 2 algarismos depois do ponto e nao mais doque isso, portanto a divisao 7/22 invez de retornar 0.318181818 vai retornar 0.31

Espero nao ter complicado :D



4. Re: progress bar

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 19/06/2012 - 22:49h

Usando o yad (fork zenity): http://www.vivaolinux.com.br/artigo/Yad-016-Eu-quero-sempre-mais-de-ti/?pagina=9

O yad tem diversos recursos interessantes, vale apena dar uma olhadinha...








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts