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

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

Re: RES: [shell-script] Re: Ajuda - Passar parametros de umarquivopara u


From: edjunior
Subject: Re: RES: [shell-script] Re: Ajuda - Passar parametros de umarquivopara um shell
Date: Fri, 23 Feb 2007 08:32:47 -0200

pow, não funcionou?
apenas por curiosidade, fiz um teste usando um exemplo semelhante ao seu:

<code>

#!/bin/bash

fn_data_anterior()
{
       date -d"yesterday ${ANO}${MES}${DIA}" +"%d"
}

ANO=2007
MES=02
DIA=01

fn_data_anterior

</code>

e ele me retorna "31".
De qualquer forma, peço desculpas pela dica que não funcionou.
Hasta!

jr.

On 2/22/07, Rodrigo Santos Vieira <address@hidden> wrote:
Thiago
Fiz o teste com: $ date -d yesterday +"%Y%m%d", mas isso não serviu pra o meu 
problema. Até porq se eu preciso da data dia anterior, e se hoje fosse dia 01/02/2007 
isso não voltaria para o dia anterior 31/01/2007.
  Brother, essa é a função do dia anterior:
  #!/bin/ksh
  fn_data_anterior()
  {
          DIA=$D
          MES=$M
          ANO=$A

          # Dado DIA, MES e ANO numericos, obtem a data do dia anterior
          DIA=`expr $DIA - 1`
          if [ $DIA -eq 0 ]; then
                  MES=`expr $MES - 1`
                  if [ $MES -eq 0 ]; then
                          MES=12
                          ANO=`expr $ANO - 1`
                  fi
                  DIA=`cal $MES $ANO`
                  DIA=`echo $DIA | awk '{ print $NF }'`
          fi
  }

  ano=`date +%Y`;
  mes=`date +%m`;
  let dia=10\#`date +%d`;

  if (( $dia<10 ));
    then
      j=0$dia;
  else
      j=$dia;
  fi
  dia=$j;
  j="";

  D=$dia
  M=$mes
  A=$ano
  fn_data_anterior

  Abraço.
  Rodrigo
   -----Mensagem original-----
  De: address@hidden [mailto:address@hidden]Em nome de Tiago Barcellos Peczenyj
  Enviada em: quinta-feira, 22 de fevereiro de 2007 07:43
  Para: address@hidden
  Assunto: Re: RES: [shell-script] Re: Ajuda - Passar parametros de 
umarquivopara um shell


  Veja só

  $ cat dia_anterior.sh
  DIA=1
  MES=2
  ANO=2007

  $ cat script.sh
  . dia_anterior.sh
  echo $ANO$MES$DIA

  $ ./script.sh
  200721

  Vc obviamente tem um problema no calculo da data do dia anterior...

  Como ja foi sugerido na lista, vc ja fez algo com date ?

  $ date -d yesterday +"%Y%m%d"
  20070221

  Abraços

  On 2/22/07, Rodrigo Santos Vieira <address@hidden> wrote:
  >
  > Show Tiago o for funcionou, brigadão, mas ainda não consigo fazer o
  > shell ler as variáveis que estão sendo calduladas em um outro shell.
  > Exemplo:
  > tenho um shell que calcula a data do dia anterior que se chama:
  > dia_anterior.sh
  >
  > .dia_anterior.sh
  > # Ja tentei com source, e tambem sem a extensão .sh
  > for P in PROGRAMA1 PROGRAMA2 ... ; do
  > run $P <<-FIM
  > i
  > ${DIA}${MES}${ANO} # aqui deveria estar os valores que foram calculados no
  > shell: dia_anterior.sh
  > p
  > l
  > s
  > f
  > FIM
  > done
  >
  > Fiz um teste com um echo $DIA$MES$ANO para ver se aparecia a volar da data
  > mas não apareceu tambem.
  > Aparece isso.
  > dia_anterior.sh[38]: 21022007: This is not an identifier.
  > OBrigado
  >
  > Rodrigo
  >
  > ----Mensagem original-----
  > De: address@hidden <shell-script%40yahoogrupos.com.br>[mailto:
  > address@hidden <shell-script%40yahoogrupos.com.br>]Em
  > nome de Rodrigo Santos Vieira
  > Enviada em: quinta-feira, 22 de fevereiro de 2007 06:07
  > Para: address@hidden <shell-script%40yahoogrupos.com.br>
  > Assunto: RES: [shell-script] Re: Ajuda - Passar parametros de um
  > arquivopara um shell
  >
  >
  > Show Tiago o for funcionou, brigadão, mas ainda não consigo fazer o shell
  > ler as variáveis que estão sendo calduladas em um outro shell.
  > Exemplo:
  > tenho um shell que calcula a data do dia anterior que se chama:
  > dia_anterior.sh
  >
  > .dia_anterior.sh
  > # Ja tentei com source, e tambem sem a extensão .sh
  > for P in PROGRAMA1 PROGRAMA2 ... ; do
  > run $P <<-FIM
  > i
  > ${DIA}${MES}${ANO} # aqui deveria estar os valores que foram calculados no
  > shell: dia_anterior.sh
  > p
  > l
  > s
  > f
  > FIM
  > done
  >
  > Fiz um teste com um echo $DIA$MES$ANO para ver se aparecia a volar da data
  > mas não apareceu tambem.
  >
  > Obrigado
  > Rodrigo
  > -----Mensagem original-----
  > De: address@hidden <shell-script%40yahoogrupos.com.br>[mailto:
  > address@hidden <shell-script%40yahoogrupos.com.br>]Em
  > nome de Tiago Barcellos Peczenyj
  > Enviada em: quarta-feira, 21 de fevereiro de 2007 08:20
  > Para: address@hidden <shell-script%40yahoogrupos.com.br>
  > Assunto: Re: [shell-script] Re: Ajuda - Passar parametros de um arquivo
  > para um shell
  >
  > Ola
  >
  > São os mesmos parametros para cada programa?
  >
  > se sim, vc pode fazer assim, via FOR
  >
  > for P in PROGRAMA1 PROGRAMA2 PROGRAMA3 ... ; do
  > # o <<- corta os TABS ;-)
  > run $P <<-FIM
  > i
  > ${DIA}${MES}${ANO}
  > p
  > l
  > s
  > f
  > FIM
  > done
  >
  > Agora se vc quer que apenas as variaveis tenham os valores que vc
  > deseja, vc pode declarar as variaveis em um script em separado e ler
  > este arquivo via source ou .
  >
  > exemplo
  >
  > #!/bin/bash
  > echo "lendo variaveis"
  > . variaveis
  > echo "executando scripts"
  > run BACKUP.sh $ONTEM
  > run LIMPAR.sh $DIRETORIOS
  > # continua...
  > echo "fim"
  >
  > e no variaveis vc define cada variavel ;-)
  >
  > On 2/20/07, rodrigobsi <address@hidden <rodrigosv%40tupy.com.br>>
  > wrote:
  > >
  > > Abaixo o shell que eu utilizo para executar os programas.
  > > Antes de executar o prorama há uma função pra pegar a data do dia
  > > anterior que eu utilizo no campo data do programa.
  > > Os parametros que eu utilizo para executar o programa são os mesmo
  > > para todos. Estão comentados abaixo.
  > >
  > >
  > > run PROGRAMA1 << F #Executa o programa PROGRAMA1 e redireciona os
  > > parametros abaixo citados.#
  > > i #Aciona a opção Informar do programa
  > > $DIA$MES$ANO # Preenche o campo data de referencia
  > > p #Aciona a opção Processar do programa
  > > l #Aciona a opção Listar do programa
  > > s #Aciona a opção Salvar do programa
  > > f #Aciona a opção Fim do programa
  > >
  > > run PROGRAMA3 << F #Executa o programa PROGRAMA3 e redireciona os
  > > parametros abaixo citados.#
  > > i #Aciona a opção Informar do programa
  > > $DIA$MES$ANO # Preenche o campo data de referencia
  > > p #Aciona a opção Processar do programa
  > > l #Aciona a opção Listar do programa
  > > s #Aciona a opção Salvar do programa
  > > f #Aciona a opção Fim do programa
  > >
  > > run PROGRAMA3 << F #Executa o programa PROGRAMA3 e redireciona os
  > > parametros abaixo citados.#
  > > i #Aciona a opção Informar do programa
  > > $DIA$MES$ANO # Preenche o campo data de referencia
  > > p #Aciona a opção Processar do programa
  > > l #Aciona a opção Listar do programa
  > > s #Aciona a opção Salvar do programa
  > > f #Aciona a opção Fim do programa
  > >
  > > São mais de 90 programas todos os dias, por isso preciso criar um
  > > arquivo de parametros e fazer com que esse shell que executa os
  > > programas pegue os parametros desse único arquivo. Mesma coisa para
  > > a função data.
  > >
  > > OBrigado
  > > Att.
  > > Rodrigo
  > >
  >
  > --
  > Tiago B Peczenyj
  > Linux User #405772
  >
  > # cd /pub
  > # more beer
  >
  > [As partes desta mensagem que não continham texto foram removidas]
  >
  > [As partes desta mensagem que não continham texto foram removidas]
  >
  >
  >

  --
  Tiago B Peczenyj
  Linux User #405772

  # cd /pub
  # more beer

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






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



---------------------------------------------------------------------
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
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil


Links do Yahoo! Grupos





reply via email to

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