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

[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! 




reply via email to

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