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=2009 month=02 date -d "$year-$month-01 +1 month -1 day" +%d
C’est bien sûr aussi possible en une seule ligne :
date -d "2009-02-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 dont on veux connaître le dernier jour (01.02.2009 ici), on dit ensuite à la fonction date d’ajouter un mois à cette date (ce qui donne 01.03.2009) puis d’enlever 1 jour (28.02.2009).
Enjoy ! ;-)