De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 31 de dezembro de 2016
Para comemorar a entrada de 2017, que espero que seja melhor que este ano que se encerra, envio um script em Bash, de autoria do Júlio Cezar Neves, o Papai do Shell.
O script é uma celebração do ano novo, utilizando recursos de arte ASCII, semelhante ao script de celebração do Natal, divulgado no dia 24 de dezembro.
Como de hábito, o script é um tutorial de diversos recursos do Bash, vale a pena estudá-lo para iniciar o ano novo com o pé direito, com mais conhecimentos.
Gostaria de agradecer ao Júlio pela enorme boa vontade em compartilhar seus conhecimentos com a comunidade GNU/Linux do Brasil, dando cursos, tirando dúvidas via Internet, sempre com muito bom humor.
O livro do Júlio, Programação Shell Linux já esgotou a sua décima edição e a 11ª deve ser lançada em breve. É nossa bíblia :-)
Aproveitando a ocasião, 2017 é o ano em que a Dicas-L completa 20 anos, a primeira dica foi veiculada no dia 3 de março de 1997.
Feliz Ano Novo!
A seguir, o script:
#!/bin/bash # # Brincadeira de Ano Novo # Autor: Julio Neves # trap 'tput cnorm; tput sgr0; clear; exit' 0 2 3 15 Feliz[1]="FFFFFFF EEEEEEE LLL III ZZZZZZZ 22222 0000 1111 7777777777" Feliz[2]="FFFFFFF EEEEEEE LLL III ZZZZZZZ 2222222 000000 11111 7777777777" Feliz[3]="FFF EEE LLL III ZZZ 22 222 000 000 11 111 7777" Feliz[4]="FFFFF EEEEE LLL III ZZZ 222 000 000 111 7777 " Feliz[5]="FFFFF EEEEE LLL III ZZZ 222 000 000 111 7777 " Feliz[6]="FFF EEE LLL III ZZZ 222 000 000 111 7777 " Feliz[7]="FFF EEEEEEE LLLLLLL III ZZZZZZZ 2222222 000000 1111111 7777 " Feliz[8]="FFF EEEEEEE LLLLLLL III ZZZZZZZ 2222222 0000 1111111 7777 " LargTela=$(tput cols) while ((${#Feliz[1]} >= LargTela)) do zenity --entry --title "Feliz Ano Novo" --text "Esta arte ascii ;) precisa de uma tela com\numa largura mínima de ${#Feliz[1]} caracteres.\n\n\t\t- Amplie a tela e clique OK\n\t\t- Clique Cancelar para sair" || exit 1 LargTela=$(tput cols) done ColCab=$((($(tput cols)-${#Feliz[1]})/2)) 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 for ((kk=1; kk<9; kk++)) { tput cup $((kk-1)) $ColCab echo "${Feliz[kk]}" } 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 sleep 0.05 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
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários