Alarm NOW!

Publicado por Eder S. G. 19/01/2006

[ Hits: 9.211 ]

Homepage: http://edersg.wordpress.com

Download alarm_now.sh




O Alarm NOW é um alarme, ou seja, um despertador, que você configura uma data, hora, uma mensagem que aparecerá na tela do seu monitor e ainda o número de beeps sonoros que o alarme soará. Este software foi a solução que encontrei para não perder/esquecer o horário para acordar.

  



Esconder código-fonte

#!/bin/bash
#
# alarm_now.sh - Soa um ou mais alarmes (beeps) em uma data/hora especifica.
#
# Autor ........: Eder S. G. (JORDAM) <ederjordam@yahoo.com.br>
# Mantenedor ...: Eder S. G. (JORDAM) <ederjordam@yahoo.com.br>
# WebSite ......: http://geocities.yahoo.com.br/ederjordam
#
# ---------------------------------------------------------------------
#
# Licença de utilização
# ---------------------
# O Alarm NOW está licenciado de acordo com as normas da GPL, ou seja,
# ele é um software de livre distribuição.
#
#
# Descrição do Alarm NOW
# ----------------------
# O Alarm NOW é um alarme, ou seja, um despertador, que você configura uma
# data, hora, uma mensagem que aparecerá na tela do seu monitor e ainda
# o número de beeps sonoros que o alarme soará.
#
# Este software foi a solução que encontrei para não perder/esquecer o
# horário para acordar. Você pode utilizar o Alarm NOW para:
# - te lembrar do horário de acordar;
# - te lembrar do horário de ir trabalhar;
# - te lembrar do horário do lanche;
# - te lembrar do horário do almoço;
# - te lembrar do horário de uma reunião;
# - te lembrar do horário de sair do trabalho;
# - te lembrar do horário de outros compromissos.
#
# Para seu perfeito funcionamento, o Alarm NOW necessita do software
# 'beep' cujo autor é Johnathan Nightingale <johnath@johnath.com>. Se
# você estiver utilizando o sistema operacional Debian GNU/Linux, instale
# o software 'beep' digitando o comando (estando logado com o usuário root):
#  apt-get install beep
# ou
#  aptitude install beep
#
#
# Como utilizar o Alarm NOW
# -------------------------
# Citarei abaixo duas formas para se utililizar o Alarm NOW:
#
# - 1ª forma: Estando no ambiente gráfico (GUI) do GNU/Linux
# Estando logado com seu usuário comum/convencional (ou seja, que
# não seja o usuário root) em um ambiente gráfico como o KDE, Gnome,
# WindowMaker, BlackBox, IceWM e outros, abra/rode/execute um software
# emulador de terminal como o eterm, aterm, rxvt, xterm, konsole,
# gnome-terminal etc;
#
# Acesse o diretório (também conhecido como pasta) onde está localizado
# o arquivo 'alarm_now.sh';
#
# Digite o comando 'ls -lh' para checar se o arquivo 'alarm_now.sh' está
# mesmo no diretório que você está atualmente. A saída do comando 'ls -lh'
# deverá se parecer (similar) como abaixo:
#
# -rw-r--r--  1 edersg edersg 11K 2005-08-13 10:19 alarm_now.sh
#
# Para abrir/rodar/executar o programa Alarm NOW, digite o comando:
#
# sh alarm_now.sh
#
# A tela inicial do Alarm NOW deverá deverá se parecer (similar) como
# abaixo:
#
# +----------------------------------------------------------------+
# |   Alarm NOW 1.0 - Por: Eder S. G. <ederjordam@yahoo.com.br>    |
# +----------------------------------------------------------------+
#
# PARTE 1: Dados referentes a data do alarme
# ------------------------------------------
# Você deseja utilizar a data atual, ou seja, 13/08/2005?
# Digite 1 para SIM ou 2 para NÃO e logo após, tecle ENTER
#
# Para prosseguir, digite 1 para utilizar a data atual ou 2 para
# que você mesmo possa configurar a data do alarme. Neste exemplo,
# escolhi a opção 1 (vou utilizar a data atual no alarme). Não se
# esqueça de pressionar a tecla ENTER.
#
# Na segunda parte, você irá configurar os dados referentes ao horário
# que o alarme soará, uma mensagem que será exibida na tela de seu
# monitor e o número de vezes que você quer ouvir o alarme.
#
# PARTE 2: Dados referentes ao horário do alarme
# ----------------------------------------------
# Por favor, digite um número (de 0 a 23) referente as horas:
# 10
#
# Por favor, digite um número (de 0 a 59) referente aos minutos:
# 35
#
# Por favor, digite uma mensagem que será exibida na hora do alarme:
# Hora do lanche!!!
#
# Por favor, digite o número de vezes que você quer ouvir o alarme:
# 5
#
# Depois de preencher/completar estes dados, o alarme estará configurado.
# Se tudo ocorreu perfeitamente, você deverá visualizar informações
# parecidas (similares) como abaixo:
#
# Alarm NOW 1.0 funcionando!
# --------------------------
# Data e hora da configuração ......: 13/08/2005-10:30
# Data e hora que o alarme soará ...: 13/08/2005-10:35
# Número de beeps que você ouvirá ..: 5 beeps
#
# Para cancelar e sair do programa, por favor, pressione CTRL + D
#
# Quando o relógio do sistema chegar às 10:35, a mensagem abaixo
# deverá aparecer/surgir na tela de seu monitor:
#
# Alarm NOW 1.0 : Hora do lanche!!!
#
# 5 ... 4 ... 3 ... 2 ... 1 ...
#
# Obrigado por utilizar o Alarm NOW 1.0.
# Eder S. G. <ederjordam@yahoo.com.br>
#
# O Alarm NOW cumpriu sua tarefa. Espero que este software seja útil
# para você.
#
# - 2ª forma: Estando no ambiente texto (SHELL) do GNU/Linux
# Efetue logon utilizando seu usuário comum/convencional, ou seja, que
# não seja o usuário root;
#
# Acesse o diretório (também conhecido como pasta) onde está localizado
# o arquivo 'alarm_now.sh';
#
# Digite o comando 'ls -lh' para checar se o arquivo 'alarm_now.sh' está
# mesmo no diretório que você está atualmente. A saída do comando 'ls -lh'
# deverá se parecer (similar) como abaixo:
#
# -rw-r--r--  1 edersg edersg 11K 2005-08-13 10:19 alarm_now.sh
#
# Para abrir/rodar/executar o programa Alarm NOW, digite o comando:
#
# sh alarm_now.sh
#
# A tela inicial do Alarm NOW deverá deverá se parecer (similar) como
# abaixo:
#
# +----------------------------------------------------------------+
# |   Alarm NOW 1.0 - Por: Eder S. G. <ederjordam@yahoo.com.br>    |
# +----------------------------------------------------------------+
#
# PARTE 1: Dados referentes a data do alarme
# ------------------------------------------
# Você deseja utilizar a data atual, ou seja, 13/08/2005?
# Digite 1 para SIM ou 2 para NÃO e logo após, tecle ENTER
#
# Para prosseguir, digite 1 para utilizar a data atual ou 2 para
# que você mesmo possa configurar a data do alarme. Neste exemplo,
# escolhi a opção 1 (vou utilizar a data atual no alarme). Não se
# esqueça de pressionar a tecla ENTER.
#
# Na segunda parte, você irá configurar os dados referentes ao horário
# que o alarme soará, uma mensagem que será exibida na tela de seu
# monitor e o número de vezes que você quer ouvir o alarme.
#
# PARTE 2: Dados referentes ao horário do alarme
# ----------------------------------------------
# Por favor, digite um número (de 0 a 23) referente as horas:
# 10
#
# Por favor, digite um número (de 0 a 59) referente aos minutos:
# 35
#
# Por favor, digite uma mensagem que será exibida na hora do alarme:
# Hora do lanche!!!
#
# Por favor, digite o número de vezes que você quer ouvir o alarme:
# 5
#
# Depois de preencher/completar estes dados, o alarme estará configurado.
# Se tudo ocorreu perfeitamente, você deverá visualizar informações
# parecidas (similares) como abaixo:
#
# Alarm NOW 1.0 funcionando!
# --------------------------
# Data e hora da configuração ......: 13/08/2005-10:30
# Data e hora que o alarme soará ...: 13/08/2005-10:35
# Número de beeps que você ouvirá ..: 5 beeps
#
# Para cancelar e sair do programa, por favor, pressione CTRL + D
#
# Quando o relógio do sistema chegar às 10:35, a mensagem abaixo
# deverá aparecer/surgir na tela de seu monitor:
#
# Alarm NOW 1.0 : Hora do lanche!!!
#
# 5 ... 4 ... 3 ... 2 ... 1 ...
#
# Obrigado por utilizar o Alarm NOW 1.0.
# Eder S. G. <ederjordam@yahoo.com.br>
#
# O Alarm NOW cumpriu sua tarefa. Espero que este software seja útil
# para você.
#
# ---------------------------------------------------------------------
#
# Histórico de desenvolvimento
# ----------------------------
#   v1.0 ALPHA - 11/08/2005 - Eder S. G.:
#     - Escolhido o nome para este software: 'Alarm NOW'.
#     - Versão instável do alarm_now.sh.
#     - Testes iniciais realizados por Adriano C. M. foram positivos.
#   v1.0 BETA - 12/08/2005 - Eder S. G.:
#     - Realizado testes para verificar o que o usuário poderá digitar.
#     - Testes iniciais realizados por Tales A. M.
#   v1.0 FINAL - 13/08/2005 - Eder S. G.:
#     - Lançamento da versão final.

# Variaveis gerais ####################################################
# Armazena o nome do software
nome_software="Alarm NOW";

# Armazena a versão do software
versao_software="1.0";

# Armazena o nome do desenvolvedor do software
desenvolvedor_software="Eder S. G. <ederjordam@yahoo.com.br>";

clear;  # Limpa a tela

echo "+----------------------------------------------------------------+";
echo "|   $nome_software $versao_software - Por: $desenvolvedor_software    |";
echo "+----------------------------------------------------------------+";

echo "";  # Gera uma linha em branco

echo "PARTE 1: Dados referentes a data do alarme";
echo "------------------------------------------";
echo "Você deseja utilizar a data atual, ou seja, `date +%d/%m/%G`? ";
echo "Digite 1 para SIM ou 2 para NÃO e logo após, tecle ENTER";
read utilizar_data_atual;  # Armazena  o valor digitado pelo usuário na variável 'utilizar_data_atual'

if [ "$utilizar_data_atual" = "1" ]; then  # Se o conteúdo de 'utilizar_data_atual' for igual a 1 então...
   dia=`date +%d`;  # Obtem o dia (01 até 31)
   mes=`date +%m`;  # Obtem o mês (01 até 12)
   ano=`date +%G`;  # Obtem o ano (2005)
else if [ "$utilizar_data_atual" = "2" ]; then  # Senão se o conteúdo de 'utilizar_data_atual' for igual a 2 então...
   echo "";  # Gera uma linha em branco

   echo "Por favor, digite um número (de 1 a 31) referente ao dia:";
   read dia;  # Armazena o dia digitado pelo usuário na variável 'dia'

   if [ "$dia" -lt 1 ] || [ "$dia" -gt 31 ]; then  # Se 'dia' for menor que 1 ou maior que 31 então...
      echo "Atenção! $dia é uma opção inválida.";
      exit;  # Termina/encerra a execução do software
   else
      case "$dia" in
         [1-9])  # Se o valor armazenado na variável 'dia' estiver entre 1 e 9
         dia=0${dia};  # A variável 'dia' receberá o valor 0 acrescido do proprio número que o usuário digitou
      ;;
      esac  # fim do comando 'case'
   fi  # fim do comando 'if'

   echo "";  # Gera uma linha em branco

   echo "Por favor, digite um número (de 1 a 12) referente ao mes:";
   echo "1 é referente ao mês de JANEIRO";
   echo "2 é referente ao mês de FEVEREIRO";
   echo "3 é referente ao mês de MARÇO";
   echo "..."
   echo "10 é referente ao mês de OUTUBRO";
   echo "11 é referente ao mês de NOVEMBRO";
   echo "12 é referente ao mês de DEZEMBRO";
   read mes;  # Armazena o mês digitado pelo usuário na variável 'mes'

   if [ "$mes" -lt 1 ] || [ "$mes" -gt 12 ]; then  # Se 'mes' for menor que 1 ou maior que 12 então...
      echo "Atenção! $mes é uma opção inválida.";
      exit;  # Termina/encerra a execução do software
   else
      case "$mes" in
         [1-9])  # Se o valor armazenado na variável 'mes' estiver entre 1 e 9
         mes=0${mes};  # A variável 'mes' receberá o valor 0 acrescido do proprio número que o usuário digitou
      ;;
      esac  # fim do comando 'case'
   fi  # fim do comando 'if'

   echo "";  # Gera uma linha em branco

   echo "Por favor, digite um número (2005) referente ao ano:";
   read ano;  # Armazena o ano digitado pelo usuário na variável 'ano'

   if [ "$ano" -lt 2005 ] || [ "$ano" -gt 2029 ]; then  # Se 'ano' for menor que 2005 ou maior que 2029 então...
      echo "Atenção! $ano é uma opção inválida.";
      exit;  # Termina/encerra a execução do software
   fi
else  # Senão...
   echo "Atenção! $utilizar_data_atual é uma opção inválida.";
   exit;  # Termina/encerra a execução do software
fi  # fim do 'else if'
fi  # fim do comando 'if' principal

echo "";  # Gera uma linha em branco

echo "PARTE 2: Dados referentes ao horário do alarme";
echo "----------------------------------------------";
echo "Por favor, digite um número (de 0 a 23) referente as horas:";  # Exibe a frase na tela
read hora;  # Armazena a hora digitado pelo usuário na variável 'hora'

if [ "$hora" -lt 0 ] || [ "$hora" -gt 23 ]; then  # Se 'hora' for menor que 0 ou maior que 23 então...
   echo "Atenção! $hora é uma opção inválida.";
   exit;  # Termina/encerra a execução do software
else  # Senão...
   case "$hora" in
      [0-9])  # Se o valor armazenado na variável 'hora' estiver entre 0 e 9
      hora=0${hora};  # A variável 'hora' receberá o valor 0 acrescido do proprio número que o usuário digitou
   ;;
   esac
fi  # fim do comando 'if'

echo "";  # Gera uma linha em branco

echo "Por favor, digite um número (de 0 a 59) referente aos minutos:";
read minuto;  # Armazena o minuto digitado pelo usuário na variável 'minuto'

if [ "$minuto" -lt 0 ] || [ "$hora" -gt 59 ]; then  # Se 'minuto' for menor que 0 ou maior que 59 então...
   echo "Atenção! $minuto é uma opção inválida.";
   exit;  # Termina/encerra a execução do software
else  # Senão...
   case "$minuto" in
      [0-9])  # Se o valor armazenado na variável 'minuto' estiver entre 0 e 9
      minuto=0${minuto};  # A variável 'minuto' receberá o valor 0 acrescido do proprio número que o usuário digitou
   ;;
   esac
fi  # fim do comando 'if'

echo "";  # Gera uma linha em branco

echo "Por favor, digite uma mensagem que será exibida na hora do alarme:";
read mensagem_alarme; # Armazena a mensagem digitada pelo usuário na variável 'mensagem_alarme'

if [ -z "$mensagem_alarme" ]; then  # Se o usuário não digitou nenhuma mensagem então...
   mensagem_alarme="BEEP! BEEP! BEEP!";  # A mensagem padrão será: 'BEEP! BEEP! BEEP!'
fi  # fim do comando 'if'

echo "";  # Gera uma linha em branco

echo "Por favor, digite o número de vezes que você quer ouvir o alarme:";
read quantidade_de_beeps; # Armazena o número de vezes que o usuário deseja ouvir o alarme

# Para saber se o conteudo de uma variavel é numero ou nao
if ! expr $quantidade_de_beeps + 1 > /dev/null 2> /dev/null; then
   echo "Atenção! $quantidade_de_beeps é uma opção inválida.";
   exit;  # Termina/encerra a execução do software
fi

echo "";  # Gera uma linha em branco
clear;    # Limpa a tela

# A variável 'dia_alarme' armazenará o dia, mes, ano, hora e minuto
dia_alarme="$dia/$mes/$ano-$hora:$minuto";

echo "$nome_software $versao_software funcionando!"
echo "--------------------------";
echo "Data e hora da configuração ......: `date +%d/%m/%G-%H:%M`";
echo "Data e hora que o alarme soará ...: $dia_alarme";
echo "Número de beeps que você ouvirá ..: $quantidade_de_beeps beeps";
echo "";  # Gera uma linha em branco
echo "Para cancelar e sair do programa, por favor, pressione CTRL + C";
echo "";  # Gera uma linha em branco

numero=1;  # Para acessar o loop while e deixar o software rodando

while [ "$numero" = 1 ]  # Enquanto 'numero' for igual a 1
   do  # faça
      if [ "$dia_alarme" = `date +%d/%m/%G-%H:%M` ]; then  # Se 'dia_alarme' for igual a data e hora atual então...
         echo "$nome_software $versao_software : $mensagem_alarme";
         echo "";  # Gera uma linha em branco

         while [ 1 -le "$quantidade_de_beeps" ]  # Enquanto 1 for menor ou igual a 'quantidade de beeps'
            do  # faça
               echo -n "$quantidade_de_beeps ... ";  # Vai exibindo o numero de beeps
               beep -f 400 -l 400;  # Soa um beep
               sleep 3;  # Aguarda 3 segundos...
               quantidade_de_beeps=`expr $quantidade_de_beeps - 1`;  # Decrementa em 1 a variável 'quantidade_de_beeps'
            done  # concluído

         echo "";  # Gera uma linha em branco
         echo "";  # Gera uma linha em branco
         echo "Obrigado por utilizar o $nome_software $versao_software.";
         echo "$desenvolvedor_software";
         echo "";  # Gera uma linha em branco
         exit;  # Termina/encerra a execução do software
      fi  # fim do comando 'if'

      sleep 20;  # De 20 em 20 segundos, o loop será executado

   done  # concluído

Scripts recomendados

restore.sh

Script para escrever uma palavra em ASCI

sysaudit

Remover e-mails com MX inexistente e status deferred em servidores Postfix

Sorteio do Amigo Secreto


  

Comentários
[1] Comentário enviado por removido em 19/01/2010 - 12:18h

Um bom script, porém não funcionou totalmente como eu esperava, mas está de parabéns! :-)
Grande abraço!

[2] Comentário enviado por px em 26/04/2013 - 19:41h

tbm, pensei que ele funciona-se via cron, em background, mas é um bom script vou usá-lo de base para um alarme via cron e com musicas em mp3 ^^


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts