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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Ajuda na saída do resulta no script


From: Julio C. Neves
Subject: Re: [shell-script] Ajuda na saída do resulta no script
Date: Tue, 5 Aug 2014 17:22:40 -0300

Cara,
não sei se a resposta é essa pq achei teu código confuso, mas eu alteraria 2 coisas:
1 - Em Shell if não combina co $? pq o if do shell é para testar instrução e $? é o retorno da intrução, então para usar o if corretamente faça:

while read  Dir;  do
if find $Dir -mtime +15 | grep -i "$File" | tail -100 |sort -u | grep -iv "$Format"|  grep -i $Ora
then
        echo "$Ora on file $Dir"
else 
        echo "$Ora is not search on dir $Dir" 
fi
done < $Dir

Mas o erro não mora aí, isso é só um purismo de programação Shell. Acho que o seu erro está em:
2 - Acho que não é o echo que está gerando essa linha indesejada. O grep tb joga na tela a linha casada e me pareceu que é dela que vc está reclamando. O GNU grep tem a opção -q para que essa saída não ocorra, mas como vc está usando ksh é bem provável que vc tenha de mover a saída do grep para /dev/null, ficando assim:

while read  Dir
do
    if find $Dir -mtime +15 | grep -i "$File" | tail -100 |sort -u | grep -iv "$Format"|  grep -i $Ora > /dev/null
    then
        echo "$Ora on file $Dir"
    else 
        echo "$Ora is not search on dir $Dir" 
    fi
done < $Dir


Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 11 a 15/08
São Paulo 4Linux 24 a 28/11
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.



2014-08-05 13:44 GMT-03:00 Bezaleel Ramos address@hidden [shell-script] <address@hidden>:
 

Galera,

Estou precisando de uma ajuda com relação a um script que estou criando, quem poder me ajudar

Só para esclarecer, criei um arquivo com a seguintes informações:

# dir_oracle.txt
/global/dba_producao/trace/oradwh/diag/rdbms/oradwh/oradwh1/trace/alert_oradwh1.log
/global/dba_producao/trace/orapef/diag/rdbms/orapef/orapef1/trace/alert_orapef1.log

O script esta da seguinte forma:

#!/bin/ksh
Dir=/home/bramos/dir_oracle.txt
File=$(cut -d'/' -f11  $Dir)
Format=`date +%b\ \%d\ \%H:..:..\ \%Y`
Ora=$1
 
while read  Dir;  do
find $Dir -mtime +15 | grep -i "$File" | tail -100 |sort -u | grep -iv "$Format"|  grep -i $Ora
if [ $? -eq 0 ]
 then
        echo "$Ora on file $Dir"
else
 
        echo "$Ora is not search on dir $Dir"
 
fi
 done < $Dir

O meu problema esta no echo(eu acho), pois queria informar somente o arquivo  e não o diretório, por exemplo:

ORA-06512 is not search on file alert_oradwh1.log
ORA-06512 is not search on file alert_orapef1.log


Quando  altero no echo para "echo "$Ora on file $File"  tenho o seguinte resultado:

ORA-06512 is not search on file alert_oradwh1.log
alert_orapef1.log
ORA-06512 is not search on file alert_orapef1.log
alert_oradwh1.log


Valeu ae

--



Bezaleel Ramos da Silva
Tel. (21)  97996-1531
ZABBIX Certified Specialist
ZABBIX for Large Environments



reply via email to

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