Menu + Relógio em tempo real

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

[ Hits: 6.433 ]

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

Criação de usuários no Samba utilizando script

Script de iniciação do servidor Nagios no Slack

Renomeando arquivos de forma padronizada

Pegando só MAC no dhcp

MPlayer em modo texto com desligamento programado do sistema


  

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