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

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

Re: [shell-script] Mais datas


From: Emerson Domingues Souto
Subject: Re: [shell-script] Mais datas
Date: Wed, 13 Apr 2005 11:44:57 -0300

Segue respostas abaixo:


----- Original Message ----- 
From: "Beatriz Langiano" <address@hidden>
To: <address@hidden>
Sent: Wednesday, April 13, 2005 10:58 AM
Subject: Re: [shell-script] Mais datas


>
> Oi Miranda,
>
> > Aliás como você está obtendo
> > data1 e data2
> > lendo de arquivo ?
> > Quem preenche esses arquivos ?
> > Poderia preencher em Inglês ?
>
> Então, eu tenho um script onde eu crio o arquivo
> DataExecucao da seguinte forma:
>
> date > DataExecucao
>
> Depois eu crio um arquivo chamado DataHoje com a data
> atual (date > DataHoje).
>
> A data1 é lida do arquivo DataExecucao
> e data2 é lida do arquivo DataHoje.
>
> Como eu faria para preencher esses arquivos em inglês?

**** INICIO EMERSON ****
use:
$ date +%Y%m%d%H%M%S > DataExecucao
isso gera uma data independente de ingles, portugues, russo ou grego
ou seja, só os numeros
**** FIM EMERSON ****

>
> > Outra pergunta
> > sua shell aceita  o sinal  >
> > ao invés de -gt no if ?
>
> Sim, meu shell não aceita o -gt, somente o >.
>


**** INICIO EMERSON ****
Para a sua shell aceitar -gt    tente usar

x=`expr $data1S - $data2S`
if test $x -gt 86400 ; then
   echo "entrou aqui"
fi

eu imagino que o sinal de maior (">") deve estar confundindo o if
e se bobear é capaz de estar redirecionando o resultado e criando um arquivo
chamado 86400
lembre-se que para shell, o sinal de maior nao é comparador e sim
redirecionador

**** FIM EMERSON ****

>
> Obrigada, Beatriz
>
>
>
> > On Tue, 2005-04-12 at 17:03, Beatriz Langiano wrote:
> > > Oi Miranda,
> > >
> > > Fiz meu script com as suas dicas, e ele ficou
> > assim:
> > >
> > >
> > > ---------------------------------------------
> > > #!/bin/bash
> > >
> > > exec 3< DataExecucao
> > > read -u3 data1
> > >
> > > exec 3< DataHoje
> > > read -u3 data2
> > >
> > > echo "Testando a data de execucao"
> > >
> > > data1S=`date +%s --date="$data1"`
> > >
> > > echo "$data1S"
> > >
> > > data2S=`date +%s --date="$data2"`
> > >
> > > echo "$data2S"
> > >
> > >   if [ `expr $data1S - $data2S` > 86400 ]
> > >     then
> > >         echo "+ de 24 horas"
> > >         else echo "nao + de 24 horas"
> > >   fi
> > > ---------------------------------------------
> > >
> > > Fiz um teste onde data1 e data2 são iguais, mas
> > ele
> > > está gerando esse erro:
> > >
> > > ---------------------------------------------
> > > Testando a data de execucao
> > > date: data inválida `Ter Abr 12 10:42:36 BRT 2005'
> > >
> > > date: data inválida `Ter Abr 12 10:42:36 BRT 2005'
> > >
> > > + de 24 horas
> > >
> > > (se as datas são iguais, a saída deveria ser a do
> > > comando else)
> > > ---------------------------------------------
> > >
> > > Você saberia o que está errado?
> > >
> > > Obrigada, Beatriz
> > >
> > >
> > > --- Miranda <address@hidden> wrote:
> > > >
> > > > Estou tendo dificuldades com a data em portugues
> > > > A idéia basica é : ( veja )
> > > >
> > > > echo $data1
> > > > Fri Apr 8 15:10:28 BRT 2005
> > > > [miranda@guitar Video]$ echo $data2
> > > > Thu Apr 7 15:10:28 BRT 2005
> > > >
> > > > data2 é anterior a data1 em exatamente 24 horas
> > > >
> > > > [miranda@guitar Video]$ data1S=`date +%s
> > > > --date="$data1"`
> > > > [miranda@guitar Video]$ echo $data1S
> > > > 1112983828
> > > > [miranda@guitar Video]$ data2S=`date +%s
> > > > --date="$data2"`
> > > > [miranda@guitar Video]$ echo $data2S
> > > > 1112897428
> > > >
> > > >  if [ `expr $data1S - $data2S` -gt 86400 ]
> > > > then
> > > >   echo "+ de 24 horas"
> > > > else
> > > >   echo "nao + de 24 horas"
> > > > fi
> > > > nao + de 24 horas
> > > > [miranda@guitar Video]$
> > > >
> > > > On Fri, 2005-04-08 at 12:32, Beatriz Langiano
> > wrote:
> > > > > Olá,
> > > > >
> > > > > Tenho um script que precisa comparar a data
> > atual
> > > > com
> > > > > uma data lida em um arquivo para ver se a
> > > > diferenca
> > > > > entre a data atual e a data no arquivo é maior
> > que
> > > > > 24h.
> > > > >
> > > > > (A data do arquivo está nesse formato:
> > > > > data1 = Qui Abr  8 15:10:28 BRT 2005)
> > > > >
> > > > > Por exemplo:
> > > > >
> > > > > #!/bin/bash
> > > > >
> > > > >   exec 3< Arquivo
> > > > >   read -u3 data1
> > > > >
> > > > >
> > > > >   If "(DataHoje - data1) > 24 horas"
> > > > >      then ....
> > > > >
> > > > >
> > > > > Alguém sabe como fazer isso?
> > > > >
> > > > > Obrigada, Beatriz
> > > > >
>
>
> Beatriz Langiano
> Mestrado em Informática
> Universidade Federal do Paraná - Brasil
>
> __________________________________________________
> Converse com seus amigos em tempo real com o Yahoo! Messenger
> http://br.download.yahoo.com/messenger/
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>



reply via email to

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