Jusqu'à présent, toutes les réponses utilisent le programme externe date
.
Depuis Bash 4.2, printf
a un nouveau modificateur %(dateformat)T
qui, lorsqu'il est utilisé avec l'argument -1
affiche la date actuelle avec le format donné par dateformat
, géré par strftime(3)
(man 3 strftime
pour des informations sur les formats).
Ainsi, pour une solution pure Bash:
printf '%(%s)T\n' -1
ou si vous avez besoin de stocker le résultat dans une var
variable:
printf -v var '%(%s)T' -1
Aucun programme externe ni sous-couches!
Depuis Bash 4.3, il est même possible de ne pas préciser le -1
:
printf -v var '%(%s)T'
(mais il pourrait être plus sage de donner toujours l'argument -1
néanmoins).
Si vous utilisez -2
comme argument au lieu de -1
, Bash utilisera l'heure à laquelle le shell a été démarré au lieu de la date actuelle (mais pourquoi voudriez-vous cela?).
Désolé, je dois dire que cela .... '' Date ne semble pas offrir cette option. Y a-t-il un moyen facile? '' - relisez le manuel ;-) – TheBonsai
Certaines versions de date l'ont et d'autres non. Donc ce n'est pas toujours présent. J'ai couru le 'type -a date' et ai utilisé une version différente et cela a fonctionné. –
FWIW, Ubuntu a seulement/bin/date, pour laquelle la réponse de @ Steef fonctionne –