GNU/Linux >> Tutoriels Linux >  >> Linux

Enregistrer dans une variable le nombre de secondes qu'un processus a pris pour s'exécuter

Souhaitez-vous mettre ce code dans votre script, ou le faire à partir du processus qui démarre le script ?

Pour ce dernier, vous pouvez utiliser le mot réservé "time", puis analyser ce qu'il renvoie pour obtenir le temps nécessaire à un script.

Si vous souhaitez le faire à partir d'un script, vous pouvez définir la variable SECONDS sur zéro, et chaque fois que vous ferez référence à cette variable, elle sera mise à jour pour correspondre au nombre de secondes écoulées. Ainsi, vous pouvez mettre "SECONDS=0" au tout début de votre script, et chaque fois que vous aurez besoin du temps écoulé, il sera dans la variable SECONDS.

Vous pouvez également utiliser l'astuce $SECONDS sur la ligne de commande, par exemple :

$ SECONDS=0; sleep 5 ; echo "that took approximately $SECONDS seconds"

Le mot réservé de temps et la variable SECONDS sont tous deux documentés dans la page de manuel bash.


Cela fonctionne dans Bash, et aussi Zsh :

# Set time format to seconds
TIMEFORMAT=%R
# Time a process
PROC_TIME=$(time (insert command here >/dev/null 2>&1) 2>&1)
echo $PROC_TIME
  • Les deux premières redirections masquent la sortie de votre processus ">/dev/null 2>&1"
  • La dernière redirection est nécessaire car "time" imprime l'heure sur stderr

Linux
  1. Trouver le temps d'exécution d'une commande ou d'un processus sous Linux

  2. Comment obtenir la propre adresse IP et l'enregistrer dans une variable dans un script shell ?

  3. La valeur maximale de l'ID de processus ?

  4. Est-ce Shell Portable pour exécuter une commande sur la même ligne après l'affectation de variables ?

  5. Pourquoi Rsync insiste-t-il qu'il y a une différence la deuxième fois que je l'exécute ?

L'indicateur de temps n'affiche pas la date/l'heure ?

Existe-t-il une commande sous Linux pour connaître le numéro de processeur dans lequel un processus est chargé ?

Chronométrer le temps d'exécution de plusieurs commandes

Si je connais le numéro PID d'un processus, comment puis-je obtenir son nom ?

Comment puis-je obtenir l'heure de l'horloge murale d'un processus en cours d'exécution ?

Bash :calcule le temps écoulé entre deux horodatages