Menu + Relógio em tempo real
Publicado por Sandro Marcell (última atualização em 08/06/2011)
[ Hits: 6.646 ]
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
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Instalação dualboot Windows 11 e Debian 13 (19)
Ubunto não reconhece rede ethernet (2)
Preciso recuperar videos *.mp4 corrompidos (13)









