Agenda Telefônica com Bash e Xdialog

Publicado por Aristoteles Rego de Araujo 16/07/2003

[ Hits: 13.606 ]

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

backup

Limpar regras e compartilhar conexão

Demonstrando o uso do Xdialog

Modifique o script abaixo de modo que ele tenha funcionalidade total, ou seja, se o

lines.sh


  

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