Vous pouvez utiliser la fonction time
ici avec une chaîne de format appropriée
TIMEFORMAT='It takes %R seconds to complete this task...'
time {
#command block that takes time to complete...
#........
}
Voici ce que le TIMEFORMAT
:
La valeur de ce paramètre est utilisée comme chaîne de format spécifiant la manière dont les informations de synchronisation pour les pipelines préfixés par le préfixe time
Le mot réservé doit être affiché. Le mot ' %
Le personnage de l'article introduit un qui est étendue à une valeur temporelle ou à d'autres informations. Les séquences d'échappement et leurs significations sont les suivantes ; les accolades indiquent les parties facultatives.
%%
A literal ‘%’.
%[p][l]R
The elapsed time in seconds.
%[p][l]U
The number of CPU seconds spent in user mode.
%[p][l]S
The number of CPU seconds spent in system mode.
%P
The CPU percentage, computed as (%U + %S) / %R.
L'option p est un chiffre spécifiant la précision, c'est-à-dire le nombre de chiffres fractionnaires après le point décimal. Une valeur de 0 n'entraîne pas décimale ou de fraction. On peut spécifier au maximum trois positions après la peut être spécifié ; les valeurs de p supérieures à 3 sont modifiées à 3. Si p n'est pas spécifié, la valeur 3 est utilisée.
L'option l
spécifie un format plus long, incluant les minutes, de la forme MMmSS.FFs. La valeur de p détermine si le fraction est incluse ou non.
Si cette variable n'est pas définie, Bash agit comme si elle avait la valeur
$'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'
Si la valeur est nulle, aucune information sur le calendrier n'est affichée. Une nouvelle ligne de queue est ajoutée lorsque la chaîne de format est affichée.
0 votes
FYI : unix.stackexchange.com a une question plus générique sur ce sujet (mesurer le temps elliptique dans bash), voir : unix.stackexchange.com/questions/314365