Agenda de Contatos
Publicado por César Blum Silveira 10/11/2004 (última atualização em 11/06/2014)
[ Hits: 14.536 ]
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
Backup Diario excluindo o antigo
Script de controle do serviço TFTP
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta