Agenda de Contatos
Publicado por Lucas Roberto Xavier de Oliveira 01/11/2007
[ Hits: 8.613 ]
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
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
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Preciso recuperar videos *.mp4 corrompidos (0)
\Boot sem espaço em disco (Fedora KDE Plasma 42) (3)
Programa fora de escala na tela do pc (38)









