shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: [shell-script] Nao permitir inclusao de registro ja existent e


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] Nao permitir inclusao de registro ja existent e
Date: Tue, 18 May 2004 14:40:12 -0300

Agora deve funcionar, Viktor. 
Nunca se esqueça que o if do shell foi feito para testar instruções e não
condições. Aproveitei e dei uma otimizadazinha, mas podia otimizar mais.

[ ]s,
Julio Cezar Neves
- Programa de Software Livre -
Tel:+55 21 2528-7070 / +55 21 8112-9988
Fax: +55 21 2528-7646
mailto:address@hidden


| -----Mensagem original-----
| De: Viktor Mota [mailto:address@hidden]
| Enviada em: terça-feira, 18 de maio de 2004 14:30
| Para: address@hidden
| Assunto: [shell-script] Nao permitir inclusao de registro ja existente
| 
| 
| Olá Galerinha,
| 
| Cadastro  todos  os  emails  de  spammers  num  bando  de dados, estou
| aprendendo  a  programar  em  SH  e  ainda  estou dando meus primeiros
| passos,  so  que  nesse  momento estou com uma duvida que nao consegui
| solucionar,  qdo  eu  chamo  meu script ele verifica se o registro que
| quero  incluir  ja  esta na base de dados, se estiver ele aborta (esta
| funcionando direitinho), se o registro nao estiver na base ele inclui,
| porem qdo tento incluir emails de fora ele da um pau estupido.
| 
| O erro se da na seguinte forma:
| 
| na base de dados consta o email abaixo por exemplo:
| 
| address@hidden
| 
| se  eu  tentar  incluir o address@hidden da primeira vez ele aceita,
| porem da segunda vez, ele da pau e retorna "Too Many arguments".
| 
| ./dbad: test: too many arguments
| ++++ Inserindo email: address@hidden
| ++++ Arrumando a base de e-mails por ordem alfabetica
| ++++ O arquivo dbmail original tem 557 linhas
| ++++ Verificando presença de registros duplicados
| ++++ O arquivo dbmail alterado para 556 linhas
| 
| Nao  sei  como  resolver  so  que ja entendi o erro, ele acha no BD as
| linhas:
| 
| address@hidden e
| address@hidden
| 
| na  hora  que  chamo  o  grep  ele  da o problema pois estou fazendo a
| comparacao com $1.
| 
| Qq ajuda sera bem vinda.
| 
| ==============================================================
| =============
| #!/bin/sh
| 
| ARQUIVO=dbmail
| BACKUP=bkp-dbmail
| 
| if test $# -eq 0
| then
|         tput bold
|         echo Uso incorreto do script.
|         echo Sintaxe: $0 address@hidden
|         tput sgr0
|         exit 1
| fi
| 
| clear
| 
| # Verifica se o registro ja existe na base de dados
| if  grep $1 $ARQUIVO > /dev/null
| then
|   echo ++++ O registro $1 ja se encontra na base de dados
|   echo ++++ Registro numero: `grep -n $1 $ARQUIVO | cut -d":" -f1`
|   echo ++++ Abortando script
|   exit 1
| else
|   # Adiciona o que vem da linha de comando no arquivo de dados
|   echo ++++ Inserindo email: $1
|   echo $1 >> $ARQUIVO
| 
| 
|   # Arruma a base de mails
|   echo ++++ Arrumando a base de e-mails por ordem alfabetica
|   echo ++++ O arquivo $ARQUIVO original tem `cat dbmail | wc 
| -l` linhas
|   sort -o dbmail dbmail
| 
| 
|   #Verifica se existem registros duplicados e os elimina
|   echo ++++ Verificando presença de registros duplicados
|   cat dbmail | sort -u > dbmail-tmp
|   mv -f dbmail-tmp dbmail
|   echo ++++ O arquivo $ARQUIVO alterado para `cat dbmail | wc 
| -l` linhas
| fi
| 
| echo " "
| echo Bom trabalho...
| echo " "
| ==============================================================
| =============
| 
| []s
| Viktor Mota
| address@hidden
| 
| --- tagline ---
| Aí ela me disse: 'Ou eu ou o modem!' Tenho saudades dela! 
| 
| 
| 
| 
| ---------------------------------------------------------------------
| Esta lista não admite a abordagem de outras liguagens de 
| programação, como perl, C etc. Quem insistir em não seguir 
| esta regra será moderado sem prévio aviso.
| ---------------------------------------------------------------------
| Sair da lista: address@hidden
| ---------------------------------------------------------------------
| Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos
Para visitar o site do seu grupo, acesse:
 http://br.groups.yahoo.com/group/shell-script/

Para sair deste grupo, envie um e-mail para:
 address@hidden

O uso que você faz do Yahoo! Grupos está sujeito aos:
 http://br.yahoo.com/info/utos.html 
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]