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