~ read.

Trouver le dernier jour d'un mois en bash !

Voici une astuce bien pratique qui en sauvera plus d'un des maux de tête !

Nous allons voir comment trouver le dernier jour d'un mois en bash grâce à la fonction date et un peu de bidouille !

Abracadabra !

year=2013
month=01
date -d "$year-$month-01 +1 month -1 day" +%d

C'est bien sûr aussi possible en une seule ligne :

date -d "2013-01-01 +1 month -1 day" +%d

Comment ça marche ?

La fonction date de bash permet d'afficher la date et l'heure actuelle du système, mais elle permet aussi d'afficher/modifier/traiter la date donnée en paramètre.

Ce que nous faisons ici est très simple : on lui donne le premier jour du mois qui nous intéresse (ici 01.01.2013) et on lui dit ensuite d'ajouter un mois à cette date (ce qui donne 01.02.2013) puis d'enlever 1 jour (31.01.2013).

Enjoy ! ;-)