- Gerar link
- X
- Outros aplicativos
Postagem em destaque
- Gerar link
- X
- Outros aplicativos
Anteriormente postei um descanso de tela para terminal muito doido, só que hoje resolvi postar sua versão sóbria; onde o texto percorrer a tela em direções geometricamente direcionadas (tradicional bate-la-da-cá).
Script: xdescanso_tela.sh
Script: xdescanso_tela.sh
#!/bin/bash #------------------------------------------------------- # Data: 20 de julho de 2016 # Criado por: Juliano Santos # Script: xdescanso_tela.sh # Descrição: Simulando descanso de tela para terminal. # Página: http://www.shellscriptx.blogspot.com.br # Github: https://github.com/shellscriptx #-------------------------------------------------------- # Requer argumentos. [[ $* ]] || { echo "Uso: $0 MENSAGEM"; exit 1; } # Mensagem MSG="$*" # Reseta as configurações quando o script for finalizado. trap 'tput reset' EXIT # Define as coordenadas iniciais e direção. c=1;x=1;y=1 yd="((y++))";xd="((x++))" # Limpa conf e oculta cursor. tput sgr0; tput civis # Loop infinito while true; do # Limpa a tela a cada ciclo clear # Subtrai o número de colunas do comprimento da mensagem, obtendo a coordenada # limite 'y' e alterando a direção do movimento quando o último caractere # chegar ao final da tela. evitando que mensagem ultrapasse os limites. xs=$(($(tput cols)-${#MSG})) ys=$(($(tput lines)-1)) # Total de linhas -1 tput setf $c # Cor de fundo, armazenado em "$c" tput cup $y $x; echo -n "$MSG" # Imprime a mensagem sem quebra de linha nas coordenadas "$y" e "$x" # Direções. # Incrementa 'c = (cor)' sempre que houver alterações na direção. [ $y -ge $ys ] && { yd="((y--))"; ((c++)); } # Se coordenada 'y' >= 'limite' muda operação de y para 'y--' (cima) [ $y -le 0 ] && { yd="((y++))"; ((c++)); } # se coordenada 'y' <= 0 muda operação de y para 'y++' (baixo) [ $x -ge $xs ] && { xd="((x--))"; ((c++)); } # Se coordenada 'x' >= 'limite' muda operação de 'x' para 'x--' (esquerda) [ $x -le 0 ] && { xd="((x++))"; ((c++)); } # Se coordenada 'x' <= 0 muda operação de 'x' para 'x++' (direita) [ $c -gt 7 ] && c=1 # Se cor > 7, reinicia o ciclo atribuindo o valor 1 eval "$xd;$yd" # Executa o modo atual de operações de 'x' e 'y' armazenados em 'xd' e 'yd'. sleep 0.1 # Tempo de 0.1 milesegundos entre os ciclos da tela. done # fim
Github
Sei que pode parecer inútil, mas é valido pela brincadeira, criatividade e principalmente pelo êxito naquilo que se propôs a fazer. 😂😂😎😎
Comentários
Postar um comentário