Alarm NOW!
Publicado por Eder S. G. 19/01/2006
[ Hits: 9.500 ]
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
Script para carregar e descarregar regras com iptables
Configuração do repositório do Slackware Current
Juntar arquivos divididos por HJsplit
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Assinador JNLP do Site Portal da Nota Fiscal Eletrônica (4)
Warcraft II Remastered no Linux? (3)









