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 > > >