você está aqui: Home  → Arquivo de Mensagens

Feliz 2011

Colaboração: Júlio Cezar Neves

Data de Publicação: 01 de janeiro de 2011

Meus amigos,

Como um nerd poderia desejar Feliz Ano Novo? Obviamente com um scriptinho... )

Favor executar o script em anexo em um terminal e tenham um 2011 cheio de suShellso e Sw Livre.

Para funcionar, você precisa ter o pacote zenity instalado em seu computador e executar o script em modo gráfico.

Se der algum problema, favor reportar.

Abraços,

Julio

Download do script

AnoNovo.sh

  #!/bin/bash
  #
  # Brincadeira de Ano Novo
  # Autor: Julio Neves
  #
  trap 'tput cnorm; tput sgr0; clear; exit' 0 2 3 15
  Cor=6
  function ApagaAcende
  {
      tput cup $[Lin - 4] $[Meio + 1]
      ((n == 0)) && {
  		echo "TIM  TIM"
  		n=1
  		return
  	}
  	tput el
  	n=0
  }
  function Cab
  {
  	Cor=$[Cor == 7?0:++Cor]
  	tput setaf $Cor; tput bold
  	tput cup 0 0
      echo "
        FFFFFFF  EEEEEEE  LLL      III  ZZZZZZZ               22222     0000      1111     1111
        FFFFFFF  EEEEEEE  LLL      III  ZZZZZZZ              2222222   000000    11111    11111
        FFF      EEE      LLL      III      ZZZ              22  222  000  000  11 111   11 111
        FFFFF    EEEEE    LLL      III     ZZZ                  222   000  000     111      111
        FFFFF    EEEEE    LLL      III    ZZZ                  222    000  000     111      111
        FFF      EEE      LLL      III   ZZZ                  222     000  000     111      111
        FFF      EEEEEEE  LLLLLLL  III  ZZZZZZZ              2222222   000000    1111111  1111111
        FFF      EEEEEEE  LLLLLLL  III  ZZZZZZZ              2222222    0000     1111111  1111111"
      tput setaf 3
  
  }
  function FazBolha
  {
      for k in 1 2 
      do
      	y=0
          for Sai in 2 4 6 6 
          do  
              C1=$[Sai == 2?$[Meio + 1]:$[Sai == 4?Meio - 0:Meio - 1]]
              C2=$[Sai == 2?$[Meio + 7]:$[Sai == 4?Meio + 6:Meio + 5]]
      		Var=
              for ((j=1; j<=Sai; j++))
              {   
                  Var=$Var$[RANDOM % 2]" "
              }   
              x=0 
  	    	let y++
              for SN in $Var
              do  
                  ((SN)) && {
                      tput cup $[Lin + 2 - y] $[k == 1?C1 + x:C2 + x]
                      echo .
                  }   
      			let x++
              done
          done
      done
  }
  Cols=5
  Fim=$(tput cols)
  while ((Fim < 96))
  do
      tput flash
  	zenity --error --text "Ponha o terminal em\nModo de tela cheia" || exit 1
      Fim=$(tput cols)
  done
  Meio=$[Fim / 2 - 5]
  Lin=$[$(tput lines) - 7]
  tput civis
  tput setab 1
  tput bold
  tput setaf 3
  clear
  
  for ((i=1; i<$Meio; i++))
  do
  
      tput cup $Lin $[i - 1]; echo '      '
      tput cup $[Lin + 1] $[i - 1]; echo '     '
      tput cup $[Lin + 2] $[i - 1]; echo '    '
      tput cup $[Lin + 3] $[i - 1]; echo '    '
      tput cup $[Lin + 4] $[i - 1]; echo '    '
      tput cup $[Lin + 5] $[i - 1]; echo '     '
      tput cup $Lin $i; echo '\____/'
      tput cup $[Lin + 1] $i; echo ' \  /'
      tput cup $[Lin + 2] $i; echo '  \/'
      tput cup $[Lin + 3] $i; echo '  ||'
      tput cup $[Lin + 4] $i; echo '  ||'
      tput cup $[Lin + 5] $i; echo ' (__)'
      tput cup $Lin $[Fim - i - 5]; echo '      '
      tput cup $[Lin + 1] $[Fim - i - 5]; echo '     '
      tput cup $[Lin + 2] $[Fim - i - 5]; echo '    '
      tput cup $[Lin + 3] $[Fim - i - 5]; echo '    '
      tput cup $[Lin + 4] $[Fim - i - 5]; echo '    '
      tput cup $[Lin + 5] $[Fim - i - 5]; echo '     '
      tput cup $Lin $[Fim - i - 6]; echo '\____/'
      tput cup $[Lin + 1] $[Fim - i - 6]; echo ' \  /'
      tput cup $[Lin + 2] $[Fim - i - 6]; echo '  \/'
      tput cup $[Lin + 3] $[Fim - i - 6]; echo '  ||'
      tput cup $[Lin + 4] $[Fim - i - 6]; echo '  ||'
      tput cup $[Lin + 5] $[Fim - i - 6]; echo ' (__)'
  	Cab
  done
  for ((f=0; f<5; f++))
  {
      tput flash
  	sleep 0.02
  }
  while true
  do
      ((++Conta % 6)) || ApagaAcende
      FazBolha
  	Cab
  	sleep 0.05
      y=0
  	for Sai in 2 4 6 6
  	do
  		let y++
  	    C1=$[Sai == 2?$[Meio + 1]:$[Sai == 4?Meio - 0:Meio - 1]]
  	    C2=$[Sai == 2?$[Meio + 7]:$[Sai == 4?Meio + 6:Meio + 5]]
  	    for ((j=1; j<=Sai; j++))
  	    {   
  	        Trab="$Trab"$(((Sai == 4)) && echo -n _ || echo -n ' ')
  	    }
  	    tput cup $[Lin + 2 - y] $C1
  	    echo "$Trab"
  	    tput cup $[Lin + 2 - y] $C2
  	    echo "$Trab"
  		Trab=
  	done
  	Cab
  	sleep 0.05
  done


Veja a relação completa dos artigos de Júlio Cezar Neves

 

 

Opinião dos Leitores

Murilo Fujita
02 Jan 2011, 18:37
Brilhantemente nerd!
Feliz ano novo ao Julio Cezar, Rubens Queiroz e leitores da Dicas-L!
Edson Yoshimaru
02 Jan 2011, 02:24
Muito criativa a idéia, gostei!
Pedro Moura
01 Jan 2011, 14:14
Rubens,

Obrigado, desejo a você e a todos os aficionados por SL um 2011 realmente código aberto, tanto no software como na mente!

[]s

Pedro Moura
Basilio Rosa
01 Jan 2011, 12:05
Muito legal, mesmo!
Coisa de nerd....
Um ótimo 2011 pra toda a equipe!!!
bruno
01 Jan 2011, 11:54
Rodei. Funcionou.
Quero ver fazer em 1 linha. (brincadeirinha...)
Feliz ano novo!
Luiz L. Marins
01 Jan 2011, 01:52
Muito legal cara.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script