Alarm NOW!
Publicado por Eder S. G. 19/01/2006
[ Hits: 9.581 ]
Homepage: http://edersg.wordpress.com
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.
#!/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
LinkSymbol - Criador de links simbólicos
Configurando endereço de rede - Slackware, Debian, CentOS/RHEL
Instale o Samba 2.2.9 no DSL e DSL-N com o script install-samba
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (5)
Formas seguras de instalar Debian Sid (0)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (4)
Alguém executou um rm e quase mata a Pixar! (1)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









