Relógio em posições aleatórias

Publicado por Sandro Marcell 20/10/2008 (última atualização em 24/09/2009)

[ Hits: 7.307 ]

Homepage: http://sanmarcell.wordpress.com

Download rclock.sh

Download rand_clock (versão 2)




Scriptzinho que fiz e mostra um relógio em tempo real e em posições aleatórias no terminal. Não é grande coisa, mas foi legal de fazer! =)

Uma screenshot do script:

http://www.vivaolinux.com.br/screenshot/Fluxbox-Relogio-no-terminal/

Falou!!!

;)

  



Versões atualizadas deste script

Versão 2 - Enviado por Sandro Marcell em 24/09/2009

Changelog: - Revisão, correção e atualização parcial do código;
- Adição de metódo (POG!) para alteração de cor durante as mudanças de posição do relógio.

Download rand_clock


Esconder código-fonte

#!/bin/zsh -f
#
# Exibindo um relogio em posicoes aleatorias no terminal.
#
# Sandro Marcell (sandro_marcell@yahoo.com.br)
# Boa Vista, Roraima - 26/08/2008.
#
# Obs.:
# - As horas sao mostradas em tempo real;
# - A cada nova execucao do script, o relogio assume uma cor diferente;
# - Para sair, pressione <Ctrl+c>;
# - Mais detalhes: 'man zsh'.

# <Ctrl+c> pressionado ou sinal 'kill' recebido, finalizam o script.
# 'kill -9 $!' encerra a funcao executada em segundo plano:
trap 'kill -9 $! ; reset ; break ; bye' 1 2 3 15

# Modulos necessarios:
zmodload -i zsh/terminfo
zmodload -i zsh/datetime

# 'Semeando' valor da variavel RANDOM:
RANDOM=$$

# Tempo (em segundos) antes de mudar o relogio de posicao:
tmp=5
   
# Quantidade padrao de linhas no terminal corrente:
qlin=$terminfo[lines]
   
# Quantidade padrao de colunas no terminal corrente.
# Para evitar que a area do relogio exceda o numero 
# de colunas do terminal, foi subtraido 8 da quantidade
# padrao de colunas.
qcol=$(($terminfo[cols] - 8))

# Funcao que definira as posicoes do relogio na tela:
function __defpos__
{

   # Limpando a tela:
   echoti clear

   # Loop de execucao:
   while :
   do
      # Nova posicao do cursor em linha:
      local linha=$(((RANDOM * qlin / 32767) + 1))
      # Nova posicao do cursor em coluna:
      local coluna=$(((RANDOM * qcol / 32767) + 1))
         
      # Reposicionando cursor:
      echoti cup $linha $coluna
      
      # Aguarde...
      sleep $tmp
      echoti clear
   done
}

# Executando a funcao '__defpos__' em segundo plano, para que seja
# possivel exibir o relogio no terminal.
__defpos__ &

# Setando modo negrito e tornando cursor invisivel:
echoti bold
echoti civis

# Carregando funcao built-in 'colors':
autoload -U colors
colors

# Setando cor aleatoria para o relogio:
cores=(red green yellow blue cyan magenta white)
setcor="$cores[$(((RANDOM * 7 / 32767) + 1))]"

# Loop responsavel por exibir o relogio:
while :
do
   # Salvando posicao do cursor:
   echoti sc
   
   # Mostrando relogio:
   print -Pn "$fg[$setcor]$(strftime "%T" $EPOCHSECONDS)"

   # Restaurando posicao do cursor:
   echoti rc
   
   # Aguarde... antes de atualizar o relogio:
   sleep 1
done
# Fim

Scripts recomendados

Calcular média escolar no shell

for.sh

Testar se variável é numérica

Script para administração de usuários de fácil compreensão.

Melhorando a performance do sistema...


  

Comentários
[1] Comentário enviado por albfneto em 22/10/2008 - 13:39h

Simples, mas [e bem legal!!!

[2] Comentário enviado por /bin/laden em 24/09/2009 - 14:29h

Interessante hein marcell!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts