Agenda de Contatos
Publicado por Lucas Roberto Xavier de Oliveira 01/11/2007
[ Hits: 8.390 ]
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
Alterar valores de jogos em Flash
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Não consigo desinstalar [RESOLVIDO] (3)
Aumentar prioridade de processos (2)
Como usar o Git apenas em um servidor interno, usando apenas o git? (1)