[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [shell-script] Ajuda para criar shell script
From: |
MrBiTs |
Subject: |
RE: [shell-script] Ajuda para criar shell script |
Date: |
Wed, 19 Jan 2005 10:26:41 -0200 |
<QUOTE>
Pessoal, tenho pouca experiência com shell-script, e meu encarredado me
pediu para montar um script conforme as informações abaixo...Sei que poderia
pesquisar e acabar montando o script, mas o problema é que ela quer isso
para ontem...
Será que alguém poderia me ajudar?
Este Script devera estar preparado para verificar a existencia do arquivo
/grelmao/MRP/pl0501.pro
com o conteudo a informação "Processar:Sim"
Caso exista verificar a existencia dos arquivos /grelmao/MRP/pl0501.par e
/grelmao/MRP/pl0501.sel e caso os três arquivos existam deve processar a
parametrização abaixo: (essa parametrização está correta e conecta bancos
progress...o problema, é realmente fazer as condições acima.)
echo "Inicio da geracao dos arquivos (`date`)" >> "$WORK"/pl0501.log
$DLC/bin/_progres -b -p /magnus/plp/pl0501.p \
-pf /amb/pf/db_grelmao.pf \
-h 20 -l 48 -D 200 -e 100 -d dmy \
-E -A < "$WORK"/pl0501.par >> "$WORK"/pl0501.log
echo "Termino da geracao do arquivo (`date`) " >> "$WORK"/pl0501.log
Ao Final do Processamento devera "Remover" os arquivos:
/grelmao/MRP/pl0501.pro
/grelmao/MRP/pl0501.par
/grelmao/MRP/pl0501.sel
O Arquivo /grelmao/MRP/pl0501.log contem informações dos dados informados
via
parametros e servira para eventuais consultas.
</QUOTE>
Chefe é uma coisa complicada :) O meu chefe, por exemplo... Dificil o
cara... Vacila demais... Opa... Oi Chefinho... Estava agora mesmo falando do
Sr... Bem, é claro :P
Vamos la.... Como em toda boa lingbobagem, vc vai ter estruturas de controle
e de testes em shell script, também. If's, while's, for's, case's da vida
sao comuns e muito simples.
Entao, todo o nosso processamento esta atrelado à existencia do arquivo
p10501.pro e seu conteudo Processar:Sim. Primeiro, vamos testar se ele
existe e se seu conteudo é o esperado:
if [ -f /grelmao/MRP/p10501.pro ] ; then
Testamos a existencia do arquivo. O [ é o nosso link para test e -f pergunta
se o parametro passado é um arquivo valido. Se essa condicao for verdadeira,
testamos o conteudo dele:
if grep "Processar:Sim" /grelmao/MRP/p10501.pro > /dev/null ; then
Aqui verificamos se o retorno de um comando grep é verdadeiro ( $? = 0 ).
ATENCAO ! Esse comando retornará verdadeiro somente se a string
Processar:Sim existir no arquivo. Se a string for Processar:SIM, o grep nao
vai retornar verdadeiro, a menos que seja especificada a opcao -i ( ignore
case ).
Isso sendo verdade, verificamos, com a mesma estrutura do primeiro if, se os
outros dois arquivos existem:
if [ -f /grelmao/MRP/pl0501.par -a -f /grelmao/MRP/pl0501.sel ] ; then
Se p10501.par é um arquivo valido E p10501.sel também é um arquivo valido,
entao processamos. O trecho do script ficaria mais ou menos assim:
if [ -f /grelmao/MRP/p10501.pro ] ; then
if grep "Processar:Sim" /grelmao/MRP/p10501.pro > /dev/null ; then
if [ -f /grelmao/MRP/pl0501.par -a -f
/grelmao/MRP/pl0501.sel ] ; then
echo "Inicio da geracao dos arquivos (`date`)" >>
"$WORK"/pl0501.log
$DLC/bin/_progres -b -p /magnus/plp/pl0501.p
\
-pf /amb/pf/db_grelmao.pf \
-h 20 -l 48 -D 200 -e 100 -d dmy \
-E -A < "$WORK"/pl0501.par >>
"$WORK"/pl0501.log
if [ $? -eq 0 ] ; then
echo "Termino da geracao do arquivo
(`date`) " >> "$WORK"/pl0501.log
rm -f /grelmao/MRP/p10501.*
else
echo "Erro no processamento"
fi
fi
fi
fi
Obviamente que faltam ai as definicoes das variaveis $DLC, $WORK mas, no
geral, essa é a logica que vc deve seguir.
[]'s