Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: openSUSE 10.2
Por kohl
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Sandro Marcell em 21/12/2008    [ 3372 hits ]

Login: SMarcell, 537379 pontos

Homepage: http://my.opera.com/smarcell/blog/   


Descrição

Simples script que implementa atráves do método POG, a clássica hélice ASCII. Bom para ser utilizado em scripts que realizam tarefas longas e que não reportam informações ao usuário durante esse período.

POG = Programação Orientada a Gambiarras =)

Falou!!! ;)

[ Download: helice.sh ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/bin/bash --norc
#
# Metodo POG basico para implementar a classica helice ASCII.
#
# Este metodo pode ser utilizado para incrementar scripts que realizam
# operacoes longas, e que nao retornam informacoes durante esse tempo!
#
# Sandro Marcell (sandro_marcell@yahoo.com.br)
# Boa Vista, Roraima - 18/12/2008
#
# Mais detalhes: 'man ascii'
#
# P.S.: POG = 'Programacao Orientada a Gambiarras' =)
PATH="/bin:/usr/bin:/usr/local/bin"

__helice__ ()
{
   # 1 - Executa-se o comando em background:
   sleep 10 > /dev/null 2>&1 & # Usando o sleep como exemplo!
   
   # Tornando o cursor invisivel (opcional!)
   tput civis
   
   # 2 - Checa se o comando em background ainda esta em execucao:
   while [ -d /proc/$! ]
   do
      # 3 - "Monta-se" a helice:
      for i in / - \\ \|
      do
         # Tempo de 'refresh':
         sleep .1

         # Usando a sequencia de escape '\e[1D'
         # para posicionar os caracteres:
         echo -ne "\e[1D$i"
         # O escape '\e[1D' move o cursor uma coluna
         # para esquerda!
      done
   done
   
   # Restaura o cursor *
   tput cnorm
}

# 4 - Finalmente, mostra-se o resultado na tela:
echo -n "Aguarde...  "
__helice__
echo -e "\e[1DOk\nFim do processo em background..."
# Fim

Scripts recomendados
   Script Linux recomendado Ogg to Mp3 Audio Convert
   Script Linux recomendado Instalador do Nagios no Fedora 14 e CentOS 5
   Script Linux recomendado Errata: Configuração do Modem Sony Ericsson MD300 da Claro 3G no Linux
   Script Linux recomendado Screenserver no modo texto - versão 1
   Script Linux recomendado Backup Interativo

Comentários
[1] Comentário enviado por slackmen em 21/12/2008 - 18:05h:

Gostei...

[2] Comentário enviado por SMarcell em 22/12/2008 - 12:36h:

Versão "melhorada":

http://www.slackbr.org/forum/viewtopic.php?f=45&p=77979&sid=0a8418d01c7091c8ff11b265f1926e02...

Opa! Valeu pelo comentário cara!

Ah, só complementando algumas informações:

O comando executado em background (que no caso do script, esta sendo executado dentro da função):
--------------------------
__helice__ ()
{
# 1 - Executa-se o comando em background:
sleep 10 > /dev/null 2>&1 & # Usando o sleep como exemplo!
...
}
---------------------------

Pode ser disparado fora dela sem problemas!
---------------------------
# 1 - Executa-se o comando em background:
sleep 10 > /dev/null 2>&1 & # Usando o sleep como exemplo!

__helice__ ()
{
...
}
---------------------------

Fiz do primeiro modo visando principalmente facilitar a didática e entendimento. Mas recomendo que se você for implementar isso em seus scripts, utilize o segundo modo!

=)

[3] Comentário enviado por eduardofraga em 01/01/2009 - 11:00h:

Achei legal, vou copiar...

Você sabe onde eu acho um com Barra de progresso?

[4] Comentário enviado por SMarcell em 01/01/2009 - 19:08h:

Eh aí Eduardo, beleza cara? Valeu pelo comentário!

Quanto a questão da barra de progresso, ela é um pouco mais específica e sua implementação vai depender do tipo de ação que você esteja querendo "monitorar".

Mesmo assim, olha um exemplo "tosco":

------------------
sleep 10 > /dev/null 2>&1 &
while [ -d /proc/$! ]
do
echo -n "#"
sleep .5
done;
echo " Ok"
------------------

Ah, também tem essa aqui (um programinha bem legal):
http://www.theiling.de/projects/bar.html

---Editado---


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.