Agenda Telefônica com Bash e Xdialog

Publicado por Aristoteles Rego de Araujo 16/07/2003

[ Hits: 13.896 ]

Download agenda.tar




<p>Fiz esta agenda telefônica usando o Xdialog para ser usada em modo gráfico. Ela é bem simples. Quem quiser colaborar com idéias e mudanças no script é só mandar e-mails. </p>
<p>É necessário esta no modo gráfico e ter o Xdialog instalado </p>

  



Esconder código-fonte

==========================================
arquivo agenda.sh
-------------------------------------------------------------------
#!/bin/bash
# agenda.sh
# Simples Agenda Telefonica para X-Windows
# Script criado por Aristoteles Araujo (Thothy)
# Licenca: GPL
# Pendencias: XFree, Xdialog, Shell Bash
#
# Modulo de menu da agenda
#
# Testa Xdialog
DIALOG=`which Xdialog` 
if [ ! $DIALOG ] ;then 
   echo " Xdialog nao encontrado" 
   exit 1 
fi 

#
# Path do icone
icone="/usr/X11R6/include/X11/pixmaps/mouse.xpm"

#Messagem da janela
mens0="Especial para o Viva o Linux"

#Mensagem para o usuario
mens1="Informa o nome - telefone"

#variaveis
arqtmp="/$HOME/.agenda_temp"
DIA=Xdialog

# Dialogo Menu
$DIA --sterr --title "Agenda Telefonica" --backtitle "$mens0" --icon "$icone" --center --cancel-label "Sair" --menu \
"Selecione sua opcao" 16 40 5 \
"1" "Incluir na agenda" \
"2" "Pesquisar nome/telefone" \
"3" "Editar agenda" \
"4" "Organizar agenda" \
"5" "Creditos" > /dev/null 2> $arqtmp

opcao=`cat $arqtmp`

#Menu
case $opcao in
1)
./agcad.sh;;
2)
./agbusc.sh;;
3)
./agedit.sh;;
4)
./agsort.sh;;
5)
$DIA --sterr --left --title "Creditos" --msgbox \
" Script criado por \n Aristoteles Araujo (Thothy) \n thothy@bol.com.br \n \n Licenca GPL \n Brasil 2003"  \
0 0
./agenda.sh
esac


==========================================
arquivo agcad.sh
-------------------------------------------------------------------
#!/bin/bash
# agcad.sh
# Modulo de cadastro de agenda
#
# Path do icone
icone="/usr/X11R6/include/X11/pixmaps/keyboard.xpm"

# Mensagem da janela
mens0="Especial para o Viva o Linux"

# Mensagem para o usuario
mens1="Informa o nome - telefone"

#Variaveis
arqtmp="/$HOME/.agenda_temp"
DIA=Xdialog

# Dialogo de Cadastro
$DIA --sterr --title "Agenda Telefonica" --backtitle "$mens0" --icon "$icone" --center --inputbox \
"Digite o nome e o telefone" 10 40 > /dev/null 2>> agenda.db

./agenda.sh




==========================================
arquivo agbusc.sh
-------------------------------------------------------------------
#!/bin/bash
# agbusc.sh
# Modulo de busca na agenda
#
# Path do icone
icone="/usr/X11R6/include/X11/pixmaps/keyboard.xpm"

# Mensagem da janela
mens0="Especial para o Viva o Linux"

# Mensagem para o usuario
mens1="Informa o nome - telefone"

# Variaveis
arqtmp="/$HOME/.agenda_temp"
DIA=Xdialog

# Dialogo de Cadastro
$DIA --sterr --title "Agenda Telefonica" --backtitle "$mens0" --icon "$icone" --no-cancel --center --inputbox \
"Digite o nome ou telefone \n para busca na agenda" 10 40 > /dev/null 2> $arqtmp

busca=`cat $arqtmp`

resultado=`grep -i $busca agenda.db > $arqtmp`

if [ -n $busca ];then
   #Mostra mensagem de erro
   $DIA --sterr --title "Agenda Telefonica" --msgbox \
   "Informe nome ou telefone \n para perquisar" 0 0 \
   exit
else
   # Mostra resultado da pesquisa
   $DIA --sterr --backtitle "Resultado da pesquisa por $busca" --title "Agenda Telefonica" --no-cancel --logbox $arqtmp 15 50 \

fi

#Chama o menu
./agenda.sh
exit


==========================================
arquivo agedit.sh
-------------------------------------------------------------------
#!/bin/bash
# agedit.sh
# Modulo de edicao da agenda
#
# Path do icone
icone="/usr/X11R6/include/X11/pixmaps/keyboard.xpm"

# Mensagem da janela
mens0="Especial para o Viva o Linux"

# Mensagem para o usuario
mens1="Informa o nome - telefone"

# Variaveis
arqtmp="/$HOME/.agenda_temp"
DIA=Xdialog

# Mostra resultado da pesquisa
$DIA --sterr --backtitle "$mens0" --title "Agenda Telefonica" --no-cancel --editbox agenda.db 15 50 > /dev/null 2> $arqtmp 

# Confirma Atualizacao
$DIA --sterr --title "Confirmacao" --yesno \
"Confirma atualizacao da base de dados?" \
0 0 \

if [ $? == 0 ]; then
   cp agenda.db agenda.db.bak
   atualiza=`cat $arqtmp > agenda.db`
fi

#Chama o menu
./agenda.sh


==========================================
arquivo agsort.sh
-------------------------------------------------------------------
#!/bin/bash
# agsort.sh
# Modulo de organizacao da agenda
# 
# Path do icone
icone="/usr/X11R6/include/X11/pixmaps/keyboard.xpm"

# Mensagem da janela
mens0="Especial para o Viva o Linux"

# Mensagem para o usuario
mens1="Informa o nome - telefone"

# Variaveis
arqtmp="/$HOME/.agenda_temp"
DIA=Xdialog


# Confirma Atualizacao
$DIA --sterr --title "Confirmacao" --yesno \
"Confirma organizacao da base de dados?" \
0 0 \

if [ $? == 0 ]; then
   cp agenda.db agenda.db.bak
   sort agenda.db -f -d -o agenda.db
fi

#Chama o menu
./agenda.sh


Scripts recomendados

Menu em formato texto simples em BASH script feito com comando select

Simula comando PAUSE do MSDOS

Rotina de Vacuum para banco de Dados Postgres

Hello World em Octave

Download via wget


  

Comentários
[1] Comentário enviado por mrgomes em 31/01/2005 - 21:26h

Kra. ficou muito bom. Parabéns.

[2] Comentário enviado por removido em 27/03/2006 - 15:38h

Parabéns muito boa essa agenda e muito dificil


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts