Comment puis-je suivre le temps à partir de la ligne de commande?


11

Je recherche une commande pour suivre l'heure.

J'imagine le workflow suivant:

  1. Exécutez la commande
  2. ... fais autre chose ...
  3. Revenez à la fenêtre du terminal et arrêtez la commande
  4. En sortie, vous recevez le temps écoulé entre 3 et 1

@JacobVlijm J'aime vraiment la clarté de la réponse d'Anwar ci-dessous. En tant qu'utilisateur non technique, il est plus facile de comprendre que les réponses dans le fil de discussion possible en double. Qu'est-ce que tu penses?
— orschiro

2
@JacobVlijm Je ne pense pas que ce soit un doublon. L'OP demande ici un chronomètre, la question là demande comment mesurer le temps d'exécution du processus.
— Seth

@Seth ok, vote rétracté.
— Jacob Vlijm

@Eric avez-vous lu mon commentaire ci-dessus?
— Seth

Réponses:



6

Que diriez-vous:

stopwatch() { 
    local start=$SECONDS
    read -p "Hit Enter..."
    echo $((SECONDS-start)) seconds elapsed
}

En action:

$ stopwatch 
Hit Enter...
14 seconds elapsed

3

Un moyen simple de le faire est de prendre l'heure de début, et une fois que vous arrêtez le script - prenez l'heure de fin. Enfin, imprimez le décalage horaire. Cela peut facilement être fait avec Python:

python -c $'import time;start=time.time();\ntry:\n\twhile True: time.sleep(0.25)\nexcept: print(time.time()-start)'

Ou version longue pour plus de lisibilité:

import time
start=time.time();
try:
    while True: time.sleep(0.25)
except: 
    print(time.time()-start)

L'arrêt se fait avec Ctrl + C


1
while True: passexécute le processeur à 100%. Je suggère while True: time.sleep(1e9)plutôt ( signal.pause()fonctionne aussi mais nécessite une importation supplémentaire).
— 2012rcampion

@ 2012rcampion bon point, déjà édité.
— Sergiy Kolodyazhnyy

1
Il est généralement considéré comme une mauvaise pratique d'attraper toutes les exceptions (bien que dans ce cas, ce ne soit probablement pas trop pertinent), ce except KeyboardInterruptserait mieux
— Tobias Kienzler

3
@TobiasKienzler J'en suis conscient. S'il s'agit d'un grand projet, je divise des choses pour attraper plusieurs exceptions. N'hésitez pas à regarder mes autres codes, indicateurs et autres. Mais dans ce cas, il n'y en a qu'un, donc ce n'est pas exactement pertinent. De plus, c'est un moyen rapide et sale. Pourquoi nit le golf légèrement?
— Sergiy Kolodyazhnyy

Je suis entièrement d'accord, je pensais juste que cela mérite d'être mentionné;)
— Tobias Kienzler
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.