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

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

Re: [shell-script] Re: Script com erro [: -eq: unary operator expected


From: Julio C. Neves
Subject: Re: [shell-script] Re: Script com erro [: -eq: unary operator expected
Date: Mon, 13 Nov 2006 16:10:44 -0200

Weder,
então, para ficar melhor, faça assim:

if  echo $info | grep -q desligado
then
    DIA=`echo $info | grep desligado | awk '{print $6}' | cut -d/ -f1`
    MES=`echo $info | grep desligado | awk '{print $6}' | cut -d/ -f2`
    ANO=`echo $info | grep desligado | awk '{print $6}' | cut -d/ -f3`

O if testa comando e não condição (veja detalhes em www.julioneves.com e lá
escolha Papo de Botequim Parte III) e o grep -q não te dá nenhuma saída.

Abraços,

Em 13/11/06, weder_feliciano <address@hidden> escreveu:
>
>   O problema é que a variavel mes estava recebendo as vezes números
> vazios,então depois do while foi acrescentado:
>
> echo $info | grep desligado > /dev/null
> if [ $? -eq 0 ]
> then
> DIA=`echo $info | grep desligado | awk '{print $6}' | cut -d/ -f1`
> MES=`echo $info | grep desligado | awk '{print $6}' | cut -d/ -f2`
> ANO=`echo $info | grep desligado | awk '{print $6}' | cut -d/ -f3`
> if [ $MES -eq $MES_AT ]
> then
> TOTAL_DIAS=$(expr $DIA_AT - $DIA)
> echo "Total de dias: $TOTAL_DIAS"
>
> Obrigado,
>
> Weder
>
> >
> > já experimentou fazer o teste com as variáveis entre aspas e ao invés de
> > usar o -eq usar um == ?
> >
> > []'s
>
> >
> > On 11/13/06, weder_feliciano <weder_feliciano@...> wrote:
> > >
> > > Estou fazendo um script pra saber quanto tempo cada maquina na rede
> > > está ligada e para isso faço alguns calculos de acordo com a saida de
> > > logs das máquinas, porém estou com o erro [: -eq: unary operator
> > > expected, segue o script abaixo
> > >
> > > #!/bin/bash
> > >
> > > # Variaveis a serem iniciadas
> > > DIA_AT=`date +%d`
> > > MES_AT=`date +%m`
> > > ANO_AT=2006
> > >
> > > cat
> > > /usr/local/snmp/Consultas_snmp/Geral/Tempo_ocioso/relatorio_off.txt |
> > > egrep '(^Nome|^Cliente|^Projeto|^IP|^Gerente|desligado)' |\
> > > while read info
> > > do
> > > DIA=`echo $info | grep desligado | awk '{print $6}' | cut -d/ -f1`
> > > MES=`echo $info | grep desligado | awk '{print $6}' | cut -d/ -f2`
> > > ANO=`echo $info | grep desligado | awk '{print $6}' | cut -d/ -f3`
> > >
> > > if [ $MES -eq $MES_AT ]
> > > then
> > > TOTAL_DIAS=$(expr $DIA_AT - $DIA)
> > > echo $TOTAL_DIAS
> > > fi
> > >
> > > A Saida do comando para executar o laço é:
> > > Nome: E-BR-000-000A-Desenvolvimento-Solaris9
> > > Cliente: Interno
> > > Projeto: Teste Internos
> > > IP: 172.16.7.151
> > > Gerente: Robson
> > > O servidor está desligado desde 27/10/2006
> > >
> > > Minha lógica seria pra comparar o mês, se for igual só calcula os
> > > dias, no caso acrescentari um else para calcular mes e dias depois,
> > > mas quero fazer funcionar a primeira parte antes.
> > >
> > > Weder
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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