Menu + Relógio em tempo real

Publicado por Sandro Marcell (última atualização em 08/06/2011)

[ Hits: 6.323 ]

Homepage: http://sanmarcell.wordpress.com

Download menuComRelogio




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.

  



Esconder código-fonte

#!/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

Scripts recomendados

Projeto rodar League of Legends no Linux =)

Loop Infinito - Modo Basico

Script para backup de usuários

Diminuir Tamanho de Imagens

Converter todas as imagens de um diretório v2.0


  

Comentários
[1] Comentário enviado por vitinho217 em 02/07/2014 - 12:19h

Que fera meu !


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts