Agenda de Contatos
Publicado por Lucas Roberto Xavier de Oliveira 01/11/2007
[ Hits: 8.695 ]
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
Maior ou Menor (script operadores)
Monitoramento do computador por meio de screenshots
Pesquisa de grupos do sistema por nome de grupo ou gid
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
O que houve com slackware ??? (12)
Alterar conteúdo de dica [RESOLVIDO] (3)
Vou destruir sua infância:) (5)









