Existe-t-il une commande shell sous Linux pour obtenir le temps en millisecondes ?
%xN
: belle pour la largeur du champ !
Existe-t-il une commande shell sous Linux pour obtenir le temps en millisecondes ?
date +"%T.%N"
renvoie l'heure actuelle en nanosecondes.
06:46:41.431857000
date +"%T.%6N"
renvoie l'heure actuelle avec les nanosecondes arrondies aux 6 premiers chiffres, ce qui correspond aux microsecondes.
06:47:07.183172
date +"%T.%3N"
renvoie l'heure actuelle avec les nanosecondes arrondies aux 3 premiers chiffres, soit les millisecondes.
06:47:42.773
En général, chaque champ de l date
peut se voir attribuer une largeur de champ optionnelle.
La question porte sur la commande Linux. La réponse de @alper fonctionne bien pour la commande date avec GNU coreutils . GNUtisez votre OSX : Installer et utiliser les outils de ligne de commande GNU sur Mac OS X
Nano est 10 9 et milli 10 3 . On peut donc utiliser les trois premiers caractères des nanosecondes pour obtenir les millisecondes :
date +%s%3N
De man date
:
%N nanoseconds (000000000..999999999)
%s secondes depuis 1970-01-01 00:00:00 UTC
Source : Server Fault's Comment obtenir le temps Unix actuel en millisecondes dans Bash ? .
Sous OS X, où date
ne prend pas en charge le %N
je recommande d'installer coreutils
en utilisant Homebrew . Cela vous donnera accès à une commande appelée gdate
qui se comportera comme date
sur les systèmes Linux.
brew install coreutils
Pour une expérience plus "native", vous pouvez toujours l'ajouter à vos .bash_aliases
:
alias date='gdate'
Ensuite, exécutez
$ date +%s%N
Voici un hack portable pour Linux pour obtenir le temps en millisecondes :
#!/bin/sh
read up rest </proc/uptime; t1="${up%.*}${up#*.}"
sleep 3 # your command
read up rest </proc/uptime; t2="${up%.*}${up#*.}"
millisec=$(( 10*(t2-t1) ))
echo $millisec
La sortie est :
3010
C'est une opération très bon marché, qui fonctionne avec les internes du shell et les procfs.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
19 votes
date +%s.%N
vous donnerait des nanosecondes, pouvez-vous travailler avec ça ?1 votes
@Wrikken Ce n'est pas tout à fait portable cependant.
18 votes
Date + "%Y%m%d.%H%M%S%3N" - Généralement j'utilise cette commande pour obtenir la date complète et l'heure unique jusqu'aux milli secondes pour créer les noms de fichiers temporaires dans unix bash script. Si votre système n'est pas capable de supporter les milli secondes, vous pouvez passer aux micro ou nano secondes en utilisant respectivement 3 à 6 et 9.
1 votes
Essayez
date -Ins