Agenda de Contatos
Publicado por Lucas Roberto Xavier de Oliveira 01/11/2007
[ Hits: 8.672 ]
Olá pessoal, segue uma agenda simples porém muito útil.
Espero que gostem!
Abraços.
Lucas Roberto
#!/bin/bash
# arquivos para armazenamento de dados
arquivo=~/.agenda.data
arquivo_antigo=~/.agenda.data.old
#menu
principal () {
echo ""
echo ""
echo " Agenda | Lucas Roberto |"
echo ""
echo ""
echo " selecione a opcao desejada:"
echo ""
echo " a - adicionar contato"
echo " e - editar contato"
echo " d - apagar contato"
echo " l - listar todas as entradas"
echo " p - procurar um contato"
echo " f - apagar tudo"
echo " s - sair"
echo ""
echo " opcao desejada: "
read opt
clear
case $opt in
a) adicionar ;;
e) editar ;;
d) apagar ;;
l) listar ;;
p) procurar ;;
f) formatar ;;
s) clear ;;
*) principal ;;
esac
}
# lista as entradas da agenda
listar () {
cat $arquivo
read
clear
principal
}
# adiciona um novo contato
adicionar () {
echo ""
echo " Nome: " ; read nome
echo " Telefone: " ; read tel
echo " Celular: " ; read cel
echo " E-mail: " ; read email
echo "$nome ->
Tel: $tel
Cel: $cel
E-mail: $email" >> $arquivo
clear
principal
}
# procura por um contato
procurar () {
echo ""
echo " Contato: " ; read pattern
echo ""
grep -i $pattern $arquivo
echo ""
echo " Pressione qualquer tecla para retornar ao menu inicial..."
read
clear
principal
}
#apaga um contato
apagar () {
# preste bem atencao a funcao contida abaixo [ complicado ;) ]
echo ""
echo " Contato: "
read nome
echo ""
echo " Tem certeza que deseja apagar `cat $arquivo | grep -i $nome | cut -d" " -f1`? (s/n)"
read confirma
if [ $confirma = "s" ]; then
# atribui a variavel $linha o numeo da linha
# que contem o nome
# primeiro lemos o arquivo, separamos o nome
# com grep e depois cortamos o numero da linha
linha=`cat $arquivo | grep -in $nome | cut -d: -f1`
# pega o numero da ultima linha do arquivo
# fazemos o grep imprimir o arquivo com o numero de
# linhas, damos um tail com a ultima linha
# da saida do grep e recortamos o numero da linha
ult_linha=`grep -n "" $arquivo | tail -n1 | cut -d: -f1`
# gera um novo arquivo atualizado
linhas_antes=`expr $linha - 1`
linhas_depois=`expr $ult_linha - $linha`
mv $arquivo $arquivo_antigo
head -n $linhas_antes $arquivo_antigo > $arquivo
tail -n $linhas_depois $arquivo_antigo >> $arquivo
fi
clear
principal
}
#edita um contato
editar () {
echo ""
echo " Contato: "
read nome
echo " Tem certeza que deseja editar `cat $arquivo | grep -i $nome | cut -d" " -f1`? (s/n)"
read confirma
if [ $confirma = "s" -o $confirma = "S" ]; then
echo ""
grep -i $nome $arquivo
echo ""
echo ""
echo " Nome: " ; read novo_nome
echo " Telefone: " ; read tel
echo " Celular: " ; read cel
echo " E-mail: " ; read email
# atribui a variavel $linha o numeo da linha
# que contem o nome
# primeiro lemos o arquivo, separamos o nome
# com grep e depois cortamos o numero da linha
linha=`cat $arquivo | grep -in $nome | cut -d: -f1`
# pega o numero da ultima linha do arquivo
# fazemos o grep imprimir o arquivo com o numero de
# linhas, damos um tail com a ultima linha
# da saida do grep e recortamos o numero da linha
ult_linha=`grep -n "" $arquivo | tail -n1 | cut -d: -f1`
# gera um novo arquivo atualizado
linhas_antes=`expr $linha - 1`
linhas_depois=`expr $ult_linha - $linha`
mv $arquivo $arquivo_antigo
head -n $linhas_antes $arquivo_antigo > $arquivo
echo "$novo_ nome -> Tel: $tel | Cel: $cel | E-mail: $email" >> $arquivo
tail -n $linhas_depois $arquivo_antigo >> $arquivo
fi
clear
principal
}
formatar () {
echo ""
echo "Tem certeza que deseja apagar todas as entradas da agenda? (s/n)"
read confirma
if [ $confirma = "s" -o $confirma = "S" ]; then
rm $arquivo
touch $arquivo
fi
clear
principal
}
clear
principal
Mapeamento de servidores e computadores pessoais
Rádios online com mplayer + Zenity
Relógio em posições aleatórias
Personalizar teclado, alterar função de uma tecla
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 fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









