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 <[EMAIL PROTECTED]> 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: shell-script@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Tiago 
> Barcellos Peczenyj
>   Enviada em: quinta-feira, 22 de fevereiro de 2007 07:43
>   Para: shell-script@yahoogrupos.com.br
>   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 <[EMAIL PROTECTED]> 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: shell-script@yahoogrupos.com.br 
> <shell-script%40yahoogrupos.com.br>[mailto:
>   > shell-script@yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>]Em
>   > nome de Rodrigo Santos Vieira
>   > Enviada em: quinta-feira, 22 de fevereiro de 2007 06:07
>   > Para: shell-script@yahoogrupos.com.br <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: shell-script@yahoogrupos.com.br 
> <shell-script%40yahoogrupos.com.br>[mailto:
>   > shell-script@yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>]Em
>   > nome de Tiago Barcellos Peczenyj
>   > Enviada em: quarta-feira, 21 de fevereiro de 2007 08:20
>   > Para: shell-script@yahoogrupos.com.br <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 <[EMAIL PROTECTED] <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: [EMAIL PROTECTED]
> ---------------------------------------------------------------------
> 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
>
>
>

Responder a