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

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

Re: [shell-script] ultimo dia do mes


From: MrBiTs
Subject: Re: [shell-script] ultimo dia do mes
Date: Thu, 22 May 2008 20:27:06 -0300
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

| como eu faço para descobrir o ultimo dia de cada mês em linha de
| comando Shell ??

Não achei a mensagem na lista, mas já vi um one liner utilizando o comando cal.

Enfim, é só tratar o resultado do comando cal, que gera o calendário de um 
determinado mes e/ou ano, como um array. Senão vejamos:

mrbits@rimmon:~$ cal
~      May 2008
Su Mo Tu We Th Fr Sa
~             1  2  3
~ 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Por padrão, ano e mes correntes.

mrbits@rimmon:~$ echo $(cal 05 2008)
May 2008 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
20 21 22 23 24 25 26 27 28 29 30 31

Ótimo. Uma visão mais "programistica". Queremos o ultimo elemento desse array

awk tem uma variável chamada $NF, que faz exatamente o que precisamos:


mrbits@rimmon:~$ echo $(cal 05 2008) | awk '{print $NF}'
31

Testando:

mrbits@rimmon:~$ for MES in $(seq -w 1 12) ; do echo -n "Ultimo dia do Mes de 
$MES/2008 = " ; echo $(cal $MES 2008) | awk '{print
$NF}' ; done
Ultimo dia do Mes de 01/2008 = 31
Ultimo dia do Mes de 02/2008 = 29
Ultimo dia do Mes de 03/2008 = 31
Ultimo dia do Mes de 04/2008 = 30
Ultimo dia do Mes de 05/2008 = 31
Ultimo dia do Mes de 06/2008 = 30
Ultimo dia do Mes de 07/2008 = 31
Ultimo dia do Mes de 08/2008 = 31
Ultimo dia do Mes de 09/2008 = 30
Ultimo dia do Mes de 10/2008 = 31
Ultimo dia do Mes de 11/2008 = 30
Ultimo dia do Mes de 12/2008 = 31





- --

Um abraço

.0. MrBiTs - address@hidden
..0 GnuPG  - 
http://keys.cardboard.net:11371/pks/lookup?op=get&search=0xAC37715A6DD1F186
000 http://www.mrbits.com.br

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFINgFKrDdxWm3R8YYRAnPOAKCb2QszoJzT/f4lp/raq/uf79h7KACgikHw
Yy3jEtkE6QHXW4MYkZK2xNM=
=ywpx
-----END PGP SIGNATURE-----


reply via email to

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