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