Ajuda com esse script aqui.

1. Ajuda com esse script aqui.

Joao Vitorino
joao_vitorino

(usa Red Hat)

Enviado em 27/02/2015 - 17:18h

Tenho esse script aqui. Ele é simples. Lê uma o nome de diversos arquivos em um txt e para cada nome (um nome de arquivo por linha) ele executa uma copia.

Essa parte de lê e copiar funcionar bem. Só queria ajuda para os contadores. Apenas o primeiro contador ( o contador abaixo do While) está funcionando.
alguém pode me ajudar por favor.


#!/bin/bash -x

LISTA=$1


while read LINHA;
do
((CONT_LINHA++))
ARQUIVO=$LINHA

if [ -f /opt/producao/arquivos/rejeitado/$ARQUIVO ];
then
((CONT_REJEITADOS++))
cp /opt/producao/arquivos/rejeitado/$ARQUIVO /opt/producao/arquivos/
rm /opt/producao/arquivos/rejeitado/$ARQUIVO
fi
if [ -f /opt/producao/arquivos/processado/$ARQUIVO ];
then
((CONT_PROCESSADOS++))
cp /opt/producao/arquivos//$ARQUIVO /opt/producao/arquivos/
rm /opt/producao/arquivos/processado/$ARQUIVO

else
((CONT_NAOENCONTRADOS++))
fi

done < $LISTA
echo "Total de arquivos: $CONT_LINHA "
echo "Total de arquivos movidos da pasta rejeitados: $CONT_REJEITADOS "
echo "Total de arquivos movidos da pasta processados: $CONT_PROCESSADOS "
echo "Total de arquivos nao encontrados: $CONT_NAOENCONRADOS "

exit




  


2. Re: Ajuda com esse script aqui.

Antonio Mauricio dos santos
anewvision

(usa Debian)

Enviado em 27/02/2015 - 17:31h


Sou leigo em script, mas o que quer dizer "fi" . não está errado?


3. Re: Ajuda com esse script aqui.

Joao Vitorino
joao_vitorino

(usa Red Hat)

Enviado em 27/02/2015 - 17:41h

anewvision escreveu:


Sou leigo em script, mas o que quer dizer "fi" . não está errado?


fi fecha o if.
if (inicia o bloco de condião)
testa algo
se algo for verdadeiro realiza outrca coisa
else
se algo for falso realiza outra coisa
fi ( fecha o bloco da condição)




4. Re: Ajuda com esse script aqui.

Joao Vitorino
joao_vitorino

(usa Red Hat)

Enviado em 27/02/2015 - 17:41h

anewvision escreveu:


Sou leigo em script, mas o que quer dizer "fi" . não está errado?


fi fecha o if.
if (inicia o bloco de condião)
testa algo
se algo for verdadeiro realiza outrca coisa
else
se algo for falso realiza outra coisa
fi ( fecha o bloco da condição)




5. Re: Ajuda com esse script aqui.

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/02/2015 - 23:03h

joao_vitorino escreveu:

Tenho esse script aqui. Ele é simples. Lê uma o nome de diversos arquivos em um txt e para cada nome (um nome de arquivo por linha) ele executa uma copia.

Essa parte de lê e copiar funcionar bem. Só queria ajuda para os contadores. Apenas o primeiro contador ( o contador abaixo do While) está funcionando.
alguém pode me ajudar por favor.


#!/bin/bash -x

LISTA=$1


while read LINHA;
do
((CONT_LINHA++))
ARQUIVO=$LINHA

if [ -f /opt/producao/arquivos/rejeitado/$ARQUIVO ];
then
((CONT_REJEITADOS++))
cp /opt/producao/arquivos/rejeitado/$ARQUIVO /opt/producao/arquivos/
rm /opt/producao/arquivos/rejeitado/$ARQUIVO
fi
if [ -f /opt/producao/arquivos/processado/$ARQUIVO ];
then
((CONT_PROCESSADOS++))
cp /opt/producao/arquivos//$ARQUIVO /opt/producao/arquivos/
rm /opt/producao/arquivos/processado/$ARQUIVO

else
((CONT_NAOENCONTRADOS++))
fi

done < $LISTA
echo "Total de arquivos: $CONT_LINHA "
echo "Total de arquivos movidos da pasta rejeitados: $CONT_REJEITADOS "
echo "Total de arquivos movidos da pasta processados: $CONT_PROCESSADOS "
echo "Total de arquivos nao encontrados: $CONT_NAOENCONRADOS "

exit



A não ser um erro tipográfico na variável $CONT_NAOENCONRADOS (sem o "t") diria que não há problemas no seu script até porque ele foi desenvolvido para uma realidade que apenas você conhece e tem acesso, em outras palavras, ninguém a não ser você pode testá-lo.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts