Incrément sur des dates avec bash
Lors de la création d’un calendrier depuis un script bash, j’ai du
approfondir mes connaissances de la fonction date
du bash.
Pour générer le calendrier il était nécessaire de faire des
incréments afin de calculer la date de l’évennement suivant.
La fonction date
disponible sous Linux comporte de nombreuses options,
la lecture de l’aide (man date
) apporte de précieuses informations.
Pour afficher la date du jour on utilise la commande :
date
ce qui donne comme résultat :
dimanche 29 août 2021, 16:45:58 (UTC+0200)
Il y a de nombreuses options de formatage.
exemples : pour afficher que la date dans un format couramment utilisé
date +"%A %d %B"
dimanche 29 août
date +%m-%d-%Y
08-29-2021
Il est également possible d’afficher une date correspondant à une chaine de caractères passée en paramètre :
date +"%A %d %B" -d "2021-08-29"
dimanche 29 août
Il faut utiliser le format YYYY-MM-DD
, le format DD-MM-YYYY
ne
fonctionne pas :
date +"%Y-%m-%d" -d "29-08-2021"
date: date « 29-08-2021 » incorrecte
En modifant cette chaine de caractères, on peut afficher une date à venir :
date +"%A %d %B" -d "2021-08-29 + 7 day"
dimanche 05 septembre
On peut ensuite générer un calendrier en faisant une boucle :
for i in $(seq 1 4); do date +"%A %d %B" -d "2021-08-29 + ${i} day"; done
lundi 30 août
mardi 31 août
mercredi 01 septembre
jeudi 02 septembre