[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Nao permitir inclusao de registro ja existente
From: |
Viktor Mota |
Subject: |
Nao permitir inclusao de registro ja existente |
Date: |
Tue, 18 May 2004 14:30:12 -0300 |
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 $# = 0
then
tput bold
echo Uso incorreto do script.
echo Sintaxe: ./dbad address@hidden
tput sgr0
exit 1
fi
clear
# Verifica se o registro ja existe na base de dados
if test `cat $ARQUIVO | grep $1` = $1
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
cat dbmail-tmp > dbmail
rm -f dbmail-tmp
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!
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Nao permitir inclusao de registro ja existente,
Viktor Mota <=