Menu + Relógio em tempo real
Publicado por Sandro Marcell (última atualização em 08/06/2011)
[ Hits: 6.701 ]
Homepage: http://sanmarcell.wordpress.com
A um tempo atrás, um amigo me pediu ajuda para montar um script que mostrasse um menu de opções juntamente com um relógio no canto inferior do terminal, e recentemente aqui no VoL surgiu uma dúvida parecida. E para ambos envie exemplos parecidos! Então resolvi postar esse exemplo caso alguém também tenha o mesmo tipo de dúvida.
#!/bin/bash --norc
#
# Exemplo basico que mostra um "menu" com relogio em tempo real
#
# Sandro Marcell <sandro_marcell@yahoo.com.br>
# Boa Vista, Roraima - 12/02/2010.
#
# Mais detalhes:
# - man tput
# - man date
# - man kill
# - man bash
#
PATH="/bin:/usr/bin:/sbin:/usr/sbin"
# Finaliza o processo disparado em background no momento em que o script
# receber um dos sinais listados.
trap 'kill -9 $!' 0 1 2 3 15
# Define-se a funcao que ira mostrar o relogio
function mostraRelogio {
local colunas linhas posicao_linha posicao_coluna
# Numero de colunas/linhas no terminal correte
colunas=`tput cols`
linhas=`tput lines`
# Para evitar que haja "vazamento" de caracteres
# subtrai-se os respectivos valores da quantidade
# de linhas/colunas correntes
# OBS.: Esses valores estao relacionados a quantidade
# de caracteres mostrados pelo comando 'date'!
posicao_coluna=$(($colunas - 21))
posicao_linha=$(($linhas - 2))
while true
do
# 1 - Salva-se a posicao corrente do cursor
# 2 - Move-se o cursor para as novas posicoes
# 3 - Mostra o relogio
# 4 - Restaura-se a posicao original do cursor
tput sc
tput cup $posicao_linha $posicao_coluna
date "+%a %d %b, %X"
tput rc
# Atualiza o relogio
sleep 1s
done
return 0
}
# Dispara a funcao em background para que seja possivel mostrar
# o menu de opcoes
mostraRelogio &
# Um menu qualquer aqui!
cat <<FIM
Opcoes disponiveis para escolha:
1 - Mostrar informacoes sobre a distro em uso
2 - Mostrar versao do kernel
3 - Mostrar uso do HD
4 - Mostrar uso da memoria RAM
FIM
read -p "Escolha uma das opcoes acima [1-4]: " escolha
case $escolha in
1) cat /etc/[A-Za-z]*[_-][rv]e[lr]* ;;
2) uname -sr ;;
3) df -Th ;;
4) free -mt ;;
*) echo "Opcao invalida!"
esac
# Fim
Script simples em Shell para testar se o kernel está com o patch KPTI habilitado
Formatando disquetes em modo texto
Acelerar leitura e escrita de um HD (hdx/sdx)
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Formas seguras de instalar Debian Sid (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Alguém executou um rm e quase mata a Pixar! (3)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









