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