Fala PJ, O que vc fez, seria o mesmo que: SEGUNDA=`expr \`dton.sh\` - \`date +%w\` - 6` DIA=`ntod.sh $SEGUNDA`
Que, usando uma notação mais moderna, seria o mesmo que: SEGUNDA=$(expr $(dton.sh) - $(date +%w) - 6) DIA=$(ntod.sh $SEGUNDA) Que, usando os operadores aritméticos do bash e do ksh (muito mais otimizados que expr), seria o mesmo que: SEGUNDA=$($[$(dton.sh) - $(date +%w) - 6)] DIA=$(ntod.sh $SEGUNDA) E finalmente fazendo um one-liner, vem: DIA=$(ntod.sh $($[$(dton.sh) - $(date +%w) - 6)]) Se o seu programa em Shell tem mais de 3 linhas, desconfie! :o) -- Abraços, Julio Cursos de Shell e Zenity em 2 fins de semana? - Em SP ligue (11) 2125-4747 (dias 29-30/08 e 12-13/09); - Em DF ligue (61) 3223-3000; - No RJ ligue (21) 2561-0867; - Turmas fechadas em outras cidades ligue (21) 8112-9988. 2009/8/18 José Paulo de Oliveira Petry <[email protected]> > > > Julio, > > Utilizei os scripts recomendados e funcionou corretamente. > > Segue abaixo como fiz: > > periodo() > { > # Funcao para encontrar a data da penultima segunda feira > # Que dia da semana eh hoje? > HOJE=`date +%w` > # Quantos dias se passaram de 01/01/1980 ? > QTOS_DIAS=`dton.sh` > # Quando foi o ultimo domingo ? > DOMINGO=`expr ${QTOS_DIAS} - ${HOJE}` > # Quando foi a penultima segunda feira ? > SEGUNDA=`expr $DOMINGO - 6` > # Converter para dia/mes/ano > DIA=`ntod.sh ${SEGUNDA}` > > logar "Periodo da consulta: Semana que se inicia em ${DIA} ( ${DIA_UTIME} ) > " > } > Valeu, > JP > > 2009/7/31 Julio C. Neves <[email protected] <julio.neves%40gmail.com>> > > > > > > > Olá José Paulo, > > > > Como o seu date não tem a opção -d, calculo que vc esteja usando Unix e, > > assim sendo, pesquise no google dton.sh e ntod.sh que vc irá encontrá-los > > aqui na lista. > > > > O primeiro transforma uma data em número de dias decorridos a partir de > > 01/01/1980 e o segundo transforma o número em data novamente. Assim vc > > deverá transformar a data de hoje (6a feira) em número, subtrair 5 para a > > última segunda e subtrair 7 para a outra segunda. Pronto agora é só > chamar > > o > > ntod.sh para converter para a nova data. > > > > Esses 2 scripts trabalhando juntos têm muita utilidade. Sevem p. ex. para > > calcular diferença entre 2 datas e para somar ou subtrair dias de uma > > determinada data. > > > > Ahh! Já ia me esquecendo. Estes scripts foram feitos para o korn shell, > mas > > tb rodam em bash. > > -- > > Abraços, > > Julio > > Cursos de Shell e Zenity? > > - Em SP ligue (11) 2125-4747; > > - Em DF ligue (61) 3223-3000; > > - No RJ ligue (21) 2561-0867; > > - Turmas fechadas em outras cidades ligue (21) 8112-9988. > > > > 2009/7/31 José Paulo de Oliveira Petry > > <[email protected]<petrybr%40gmail.com> > <petrybr%40gmail.com> > > > > > > > > > > > > > > Olá, > > > > > > Estou fazendo um script e em certo ponto dele eu preciso descobrir o > dia > > no > > > formado DD/MM/AAAA da penúltima segunda-feira. > > > > > > Alguma ideia de como fazer??? > > > > > > Valeu > > > JP > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas]
