barra progresso [RESOLVIDO]

1. barra progresso [RESOLVIDO]

Rodrigo
megatux

(usa Debian)

Enviado em 10/12/2008 - 11:39h

Comunitários colegas,

estou criando um script para instalação de uma interface web em php para gestão do proftpd + mysql criada aqui na empresa. Dentro deste script tem uma chamada ao aptitude para resolver as dependências. Como são vários pacotes, e a saida de erro é direcionada ao syslog, o processo leva algum tempo sem imprimir nada na tela. Gostaria de saber se existe uma maneira de exibir uma barra de progresso ou animação do tipo "/ | \" que ao imprimir repetidamente na tela nos dá a impressão de um "relóginho". Alguma sugestão amigos ?

Agradeço vossa atenção.

Cordialmente,

Rodrigo Pinheiro


  


2. Re: barra progresso [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 10/12/2008 - 20:55h

Rodrigo, beleza?

Cara tenho uma ideia que pode te ajudar, embora não seja a melhor coisa do mundo, já vi este tipo de script em alguns programas.

Eu não sei como fazer para executar o while enquanto esta rodando o processo, já ouvi falar do running, mas não consegui faze-lo funcionar, ai fiz uma "gambiarra" enquanto o processo tiver rodando executa um ps com um grep e consigo driblar.

Segue script, espero que ajude, com certeza é melhor do que esperar com a tela sem nada, ajuste ai para suas necessidades, alterando tempo, etc.

Qualquer coisa post ai..

ABS

#!/bin/sh

echo "vou rodar um sleep de 30 segundos em background"
sleep 30 &
pid_sleep30=$! # o pid_sleep30 eh soh o nome do meu pid pode ser qualquer nome para pegar o numero do pid
echo -n "[ "
while ps | grep $pid_sleep30 >> /dev/null; do
echo -n =
sleep 03
done;
echo " OK ]"

#fim



3. Re: barra progresso [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 10/12/2008 - 21:00h

obs, agora que vi sua imagem, é o cachorro louco, que esta na foto com vc?
se sim, tb tenho foto com ele, e é incrivel como ele me lembra alguem, quem aparece só no final do ano, mas não lembro quem !!!! hauahuahauhauhauhauahuahuh, não pude evitar.



4. Re: barra progresso [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 11/12/2008 - 14:07h

Ou ainda você pode implementar a famosa hélice ASCII:

--------------------
# Executa o comando em segundo plano
sleep 20 > /dev/null 2>&1 & # Usando o sleep como exemplo!

# Tornando o cursor invisivel:
tput civis

# Loop que checa se o comando em background ainda esta em execução:
while [ -d /proc/$! ]
do
# "Montando" a helice:
for i in / - \\ \|
do
sleep .1
# Usando sequencia de escape '\e[D' para posicionar os caracteres:
echo -ne "\e[D$i"
done
done

# Restaura o cursor:
tput reset
--------------------

Só complementando o post!

=)


5. barra progresso [RESOLVIDO]

Rodrigo
megatux

(usa Debian)

Enviado em 17/12/2008 - 10:49h

Obrigado pela ajuda amigos !
Não vou delegar melhor resposta, para não ser injusto com vocês, já que as duas respostas foram excelentes !!!


Forte abraço,

Rodrigo






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts