shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Script simulando screensaver


From: Arkanon
Subject: Re: [shell-script] Script simulando screensaver
Date: Thu, 17 Sep 2009 10:03:36 -0300

2009/9/16 Julio C. Neves <address@hidden>
>
> Procure no histórico da lista que vc achará um screensaver que fiz, imitando
> o Matrix. Creio que se usar matrix como palavra chave vc achará.

Bom dia, Julio. Obrigado pela sugestao.

Olhei o script, mas vi que o principio dele eh diferente do meu.

O seu escreve um caracter por vez na tela partindo de um unico
processo. Nao ha concorrencia pelo uso do cursor de texto.

O meu, por imprimir varios caracteres aleatoria e simultamneamente
atraves do lancamento em background de varios processos do loop de
escrita, pode (e de fato varias vezes acontece) de algum processo
iniciado estar, por azar, tentando escrever o seu caracter na tela no
mesmo momento que outro.

Sei que eh possivel produzir um efeito semelhante criando um array de
posicoes e entao, aleatoriamente, ir pegando as posicoes e trocando as
cores dos caracteres. Mas isso seria um controle por parte do script e
exigiria uma implementacao. Nada contra, mas...

... a minha ideia eh tentar evitar ter que implementar esse controle
usando o fato que varios processos rodando simultaneamente em
background resultam num controle semelhante, mas automatico, usando
uma caracteristica do bash. So que ai eu caio nesse problema de
eventual concorrencia. Entao, ou eu encontro uma forma de fazer um
processo "perceber" se o cursor esta ocupando no momento em que o
sleep aleatorio terminou, e portanto ele deve esperar mais um
pouquinho, ou precisarei abandonar essa abordagem e partir para a
implementacao citada acima.

Eu poderia usar arquivos de lock para isso, mas parece meio brutal
para algo tao instantaneo e simples como escrever um caracter.

Outra ideia que me passou pela cabeca eh de alguma forma usar um fifo
para por uma ordem no uso do cursor, mas nao sei se isso eh possivel
com alguma caracteristica padrao do bash.

Alguma dica?

[]

--
(o_   ------------------     __o
//\   address@hidden   _`\<,
V_/_  --- www.lsd.org.br  (_)/(_)
---------------------------------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]