Agenda de Contatos
Publicado por César Blum Silveira 10/11/2004 (última atualização em 11/06/2014)
[ Hits: 14.641 ]
Download 1402362331.contatos.sh (versão 2)
Meu primeiro shell-script, uma agenda de contatos. Vc pode adicionar, apagar, editar e procurar nomes. Armazena nomes, telefones, celulares e e-mails.
Versão 2 - Enviado por Vitor Augusto M. Pio em 09/06/2014
Changelog: Alterações:
- Criação do arquivo agenda.data caso ele não exista no começo do programa.
- Mensagem caso não hajam registros.
- Mensagem para cadastro com sucesso.
- Mensagem caso contato não seja encontrado.
- Mensagem contato removido com sucesso.
- Mensagem contato editado com sucesso.
- Mensagem contato não foi encontrado.
- Melhoria em algumas funções (menores).
- Pressione qualquer tecla para retornar ao menu inicial...
Download 1402362331.contatos.sh
#!/bin/bash # # contatos.sh criado por César Blum Silveira # # Você pode copiar, distribuir, modificar ou fazer # o que você quiser com este script. # # Dúvidas ou comentarios: cesarbs@brturbo.com # # arquivos que irão armazenar os dados arquivo=~/.agenda.data arquivo_antigo=~/.agenda.data.old # menu principal () { echo "" echo "" echo " Agenda" echo "" echo "" echo " O que você quer fazer?" echo "" echo " a - adicionar contato" echo " e - editar contato" echo " d - apagar contato" echo " l - listar todas as entradas" echo " s - procurar um contato" echo " f - apagar tudo" echo " q - sair" echo "" echo " opção: " read opt clear case $opt in a) adicionar ;; e) editar ;; d) apagar ;; l) listar ;; s) procurar ;; f) formatar ;; q) 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 principal } # apaga um contato apagar () { # o raciocionio envolvido nesta funçao é um pouco 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 à 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 à 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 } # apaga todas as entradas 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 } # início do programa clear principal
Instalação do sublime text 3 no Ubuntu 16.04
Transformando arquivos TXT em arquivos PDF
Rádios online com mplayer + Zenity
Atualizar status do Twitter pelo terminal
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Criar entrada no GRUB para uma ISO Linux (7)
Open Suse não abre wi-fi automaticamente (3)
Ruído no Microfone (ALC287 - AMD Ryzen 5 7535HS) no Debian 12.9 (15)