[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- RES: [shell-script] Nao permitir inclusao de registro ja existent e,
Julio Cezar Neves - DATAPREVRJ <=