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

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

Re: RES: [shell-script] Determinando Ultimo dia do Mes


From: Andreyev Dias de Melo
Subject: Re: RES: [shell-script] Determinando Ultimo dia do Mes
Date: Tue, 1 Feb 2005 15:02:21 +0000

On Mon, 31 Jan 2005 15:28:22 -0300, Julio Cezar Neves - DATAPREVRJ
<address@hidden> wrote:
> 
> Aê MrBiTs,
> Não entendi legal o que o cara fez. Mas o que acho correto é o seguinte:
> 
> set `cal 11 2004` ; shift $(($#-1)) ; echo $1
> 
> O set transforma a saída do cal em parâmetros posicionais, assim $1 seria
> Novembro, $2 2004, $3 Su, ... e $n seria 28, 29, 30 ou 31. Assim se fizermos
> shift $(($#-1)) estaremos jogando fora os n-1 primeiros parâmetros só
> sobrando o último que será agora o $1.

Uma outra opção, mais 'clara para iniciantes', mas não tão elegante
como a acima é contar quantas palavras(wc -w) a saída do cal tem,
subtraindo deste número a quantidade de palavras referentes ao mês,
ano e aos dias da semana, mais ou menos assim:

$ echo $(( $(cal 11 2004 | wc -w) - 9 ))
30

BTW, em algum lugar mencionaram a velocidade, e builtin's são mais
rápidos que o wc:

$ time { set `cal 11 2004` ; shift $(($#-1)) ; echo $1;}
30

real    0m0.018s
user    0m0.012s
sys     0m0.003s

$ time echo $(( $(cal 11 2004 | wc -w) - 9 ))
30

real    0m0.025s
user    0m0.014s
sys     0m0.005s

Ou seja, leia o manual do bash, leia o livro do Julio! :-P

-- 
Andreyev


reply via email to

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