Réponses:
C'est une façon d'exprimer l'heure formatée par printf
.
Le format est:
%(FORMAT)T
Où FORMAT
est défini par strftime(3)
.
Donc, pour obtenir l'heure de l'époque (temps en secondes depuis le 1970-01-01 00:00:00 UTC), nous avons besoin du strftime(3)
format %s
:
printf "%(%s)T\n"
Notez que vous devez également \n
à la fin ajouter une nouvelle ligne car printf
(contrairement à echo
) ne l'ajoute pas par défaut.
Exemple:
$ printf "%(%s)T\n"
1454300377
$ printf "%(%Y-%m-%d)T\n"
2016-02-01
$ printf "%(%Y-%m-%d %H:%M:%S)T\n"
2016-02-01 10:20:27
Dans un souci d'exhaustivité, vous pouvez également utiliser la date
commande d'une strftime(3)
manière formatée similaire pour obtenir l'heure:
$ date '+%s'
1454300542
$ date '+%Y-%m-%d' ## Short form: date -I
2016-02-01
$ date '+%Y-%m-%d %H:%M:%S'
2016-02-01 10:22:47
NOTE : Ce comportement est spécifique à bash
's et ksh
est intégré dans la fonction printf
, et ne fonctionne pas avec /usr/bin/printf
, csh
et zsh
built-ins.
printf(1)
page de manuel.
printf
est une fonction intégrée ici (bien que celle externe ait le même comportement) .. vérifiez help printf
..
printf
un intégré?/usr/bin/printf
sur Ubuntu 14.04 donne une erreur:printf: %(: invalid conversion specification
. Si vous utilisezbash
. Essayez laman bash
documentation intégrée.