La commande date en bash permet de réaliser de multiples opérations, elle n'est pas aussi trivial qu'elle n'y parait et ne permet pas seulement de donner la date du jour. En effet, cette commande permet de formater une date quelconque d'une certaine manière, mais aussi de réaliser des opérations mathématiques sur les dates (ajout ou retrait de jours).
La commande date par défaut donne la date du jour au format utc dans votre fuseau horaire.
donne le résultat suivant
Pour formater la date du jours dans un motif donné, utiliser la syntaxe suivante
Pour faire des opérations arithmétique, par exemple, obtenir le jour précédent
Pour obtenir le jour suivant
Formatage d'une date en bash
Le formatage de date en bash est légèrement plus compliqué, voici le détail de la syntaxe
dateChoisi : date à formater
OptionCalcul : option de calcul, pour 2 jours après, mettre "2 days", pour 2 jours avant, mettre "2 days ago"
format : format voulu pour l'affichage, le détail des options dispo est dans le man
Pour plus de facilité , voici un exemple
Il est aussi possible d'afficher des caractères spéciaux (type saut de ligne etc ...) La commande suivante, vous permet d'afficher la date du jour sur 2 lignes (via le %n), en utilisant une tabulation ( %t ) sur la seconde ligne
Celle ci donnera le résultat suivant
Enfin, certains opérateurs vous permettent de ne pas afficher les 0 finaux de chaque nombre.
Voici quelques exemples,
utiliser le - avant le % pour afficher la date sans les 0
utiliser le _ avant le % pour afficher la date en remplaçant les 0 par des espaces.
Astuces
Pour mettre la date en anglais en bash (en français, mettre fr_FR à la place de en_EN), vu que le man n'aide pas trop :
dans votre script mettre
pour debugger, mettre la commande "locale" dans votre sh qui donne la langue courante utiliser dans votre script.
Pour compléter , voici la liste des directives possible pour la gestion des dates, équivalente à ce qu'on pourrait trouver dans un man