Benoît.Bâlon.free.fr » Le dernier jour du mois ?
Le dernier jour du mois ?
30/04/2010 Benoît Bâlon Commenter Allez aux commentaires
Dans la catégorie « astuces pour amoureux de la ligne de commande sous GNU/Linux », voici une petite commande qui peut s’avérer pratique dans le cas de certains développements en Bash. La simplicité de ce code n’a d’égal que sa beauté ! Bien entendu, cette remarque hautement poétique reste subjective…
Pour une raison ou pour une autre, on peut avoir besoin de vérifier si la date du jour est le dernier jour du mois. Sauf que le dernier jour du mois peut être un 28, un 29, un 30 ou un 31.
La commande date du projet GNU permet de retourner une date autre que celle du jour. Il suffit alors de vérifier si « demain » sera le premier jour du mois suivant, et d’exécuter la commande de son choix en conséquence.
1 test `date +’%d’ -d ‘1 day’` = « 1 » && echo « hello » || echo « world »
La ligne ci-dessus exécute la commande date en ajoutant « 1 jour » à la date actuelle. Le « %d » permet de récupérer le numéro du jour dans le mois. Si le test confirme que demain nous serons le 1er, alors le terminal affiche « hello » ; dans le cas contraire, le terminal affiche « world ».
Une manière plus académique d’écrire ce code au sein d’un script Bash, pourrait être l’exemple ci-dessous qui donnera le même résultat.
1 demain=`date +’%d’ -d ‘1 day’`
2
3 if test « $demain » = « 1 »
4 then
5 echo « hello »
6 else
7 echo « world »
8 fi