Menu + Relógio em tempo real
Publicado por Sandro Marcell (última atualização em 08/06/2011)
[ Hits: 6.427 ]
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
Recarregando as configurações do SQUID sem perder as conexões
Bloqueio e desbloqueio de contas de usuários
Atualização automática Debian / Ubuntu
Atualizando o linux pelo apt-get
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta