Pular para o conteúdo

Menu + Relógio em tempo real

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.
Sandro Marcell SMarcell
Hits: 6.802 Categoria: Shell Script Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

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.
Download menuComRelogio Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Montar unidades de Rede windows

Duplicando CDs de áudio e dados

Script para alterar listas do Squid

Barra de Progresso Simples

auto.sh (Para kurumin)

#1 Comentário enviado por vitinho217 em 02/07/2014 - 12:19h
Que fera meu !

Contribuir com comentário

Entre na sua conta para comentar.