feet.sh - pseudo screensaver em bash

Publicado por Valtoir dos Santos Jardim 18/08/2008

[ Hits: 6.443 ]

Homepage: valtoir.wordpress.com

Download feet.sh




Feet.sh é um pequeno script que fiz como exercício de lógica e programação. Ele desenha pegadas no terminal, em posições aleatórias e cores idem. Para pará-lo é só pressionar qualquer tecla.

  



Esconder código-fonte

#!/bin/bash
#  author: Valtoir dos Santos Jardim
#  e-mail: valtoirjardim_at_gmail_dot_com
#    blog: valtoir.blogspot.com
#    date: 2007-07-29-21:28
# version: ~ 0.99
trap "" 2
setterm -cursor off -bold on
colors=(31 32 33 34 35 36 37)
rfp=("+8" "+9" "+8" "+8")
rfo=("(_/" ") /" "(   )" "Oooo.")
lfp=("+2" "+1" "" "")
lfo=("\_)" "\ (" "(   )" ".oooO")
feet () {
   while :; do
      left_foot=$(($RANDOM % $((`tput cols` - 12)))) || exit -1
      act_foot=$((RANDOM % 2))      
      color=${colors[$(($RANDOM % ${#colors[*]}))]}
      seed=$((RANDOM % 4))
      delay=.$(((RANDOM % 8) + 4))
      actline=$(tput lines)
      while :; do
         for i in $(seq $seed 4); do
            [ $((actline--)) -ge 1 ] || break
            if [ $act_foot -eq 0 ]; then
               tput cup $((actline)) $((left_foot ${rfp[$i]}))
               echo -e "\e[$color;1m""${rfo[$i]}""\c\e[m"
            else
               tput cup $((actline)) $((left_foot ${lfp[$i]}))
               echo -e "\e[$color;1m""${lfo[$i]}""\c\e[m"
            fi
         done
         if [ $act_foot -eq 0 ]; then
            act_foot=1
         else
            act_foot=0
         fi
      [ $actline -ge 1 ] || break
         seed=0
         sleep $delay
      done
   done
}
feet &
read -rs -n 1
echo -e "\e[m"
setterm -reset
clear
pkill feet

Scripts recomendados

analise

Calculadora

Codecs Win32

Adição automática dos repositórios do Google Chrome, Google Talk Plugin, Google Earth, Dro no Ubuntu

Restaurar base de dados PostgreSQL


  

Comentários
[1] Comentário enviado por SMarcell em 18/08/2008 - 14:12h

Só faltou adicionar comentários, para facilitar a compreensão do que cada linha faz!

[2] Comentário enviado por edner_bertao em 18/08/2008 - 14:45h

Olá Valtoir !

Interessante seu script... acho que poderá servir de inspiração para outras coisas.

Parabéns !

[3] Comentário enviado por edirlf em 18/08/2008 - 20:29h

hahaha, que show de bola.
Vai pro favoritos, não pelas pegadas, mas pelo código, acho que vou aprender bastante coisa com isso.
Parabéns.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts