Pular para o conteúdo

Relógio em posições aleatórias

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!!!

;)
Sandro Marcell SMarcell
Hits: 7.704 Categoria: Shell Script Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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!!!

;)
Download rclock.sh Enviar nova versão

Versões atualizadas deste script

Sandro Marcell

Versão 2 enviada 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

reboot

Mostrar detalhes dispositivo de Hardware

Limpar o histórico dos documentos recentes do Ubuntu 11.10

Script para Inicialização / Finalização do MRTG no boot

Calculadora plus

#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

Entre na sua conta para comentar.