Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/11/2012, à 18:44

Romu

Mesure du temps dans un script bash ?

Bonjour,
Je cherche à mesurer le temps d'une tâche dans un script bash, je ne cherche pas une grosse précision, un temps en secondes me suffit largement. Voici le script :

#!/bin/bash

RM='/bin/rm'
FTP='/usr/bin/ftp'
DATE='/bin/date'

BEFORE=$($DATE +'%s')
echo $BEFORE

...exécution de la tâche FTP...

# Compute and display the elapsed time
AFTER=$($DATE +'%s')
echo $AFTER
ELAPSED=$AFTER-$BEFORE
echo $ELAPSED

exit 0

Mon problème est que la sortie est la suivante :

1352824835
1352824837
1352824837-1352824835

Comment faire pour que cette p.... de soustraction soit correctement calculée ? Merci.


A tout problème complexe, il existe une solution simple : la mauvaise

Hors ligne

#2 Le 13/11/2012, à 19:32

Clem38

Re : Mesure du temps dans un script bash ?

salut,

modifie la ligne

ELAPSED=$AFTER-$BEFORE

en

ELAPSED=$(($AFTER - $BEFORE))

cela devrait fonctionner

Dernière modification par Clem38 (Le 13/11/2012, à 19:33)

Hors ligne

#3 Le 13/11/2012, à 19:50

nesthib

Re : Mesure du temps dans un script bash ?

tu peux aussi utiliser :

/usr/bin/time --format='la commande a duré %e secondes' ta_commande

(je précise ici /usr/bin/time car certains shells on leur propre variante de time)

regarde man time pour une liste de variable qui peuvent être utilisées


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#4 Le 14/11/2012, à 10:11

credenhill

Re : Mesure du temps dans un script bash ?

hello
il y a aussi

BEFORE=$SECONDS
...
...
ELAPSED=$(($SECONDS-$BEFORE))

Hors ligne

#5 Le 14/11/2012, à 10:31

Romu

Re : Mesure du temps dans un script bash ?

Merci à tous les 3, z'êtes choux !

Comme je cherche à estimer la performance de ma liaison wifi, je me suis rendu compte, depuis, qu'en lançant la tâche ftp avec le paramètre "-inv" j'obtiens directement l'info sans me lancer dans des calculs à la noix.

Mais merci quand même, ça améliore ma culture bash, ce qui n'esy jamais mauvais.


A tout problème complexe, il existe une solution simple : la mauvaise

Hors ligne

#6 Le 31/01/2018, à 02:01

pem1664

Re : Mesure du temps dans un script bash ?

nesthib a écrit :

tu peux aussi utiliser:

/usr/bin/time --format='la commande a duré %e secondes' ta_commande

(je précise ici /usr/bin/time car certains shells on leur propre variante de time)

regarde man time pour une liste de variable qui peuvent être utilisées

Salut est ce qu'on peut utiliser time dans un script? comme le lancer au tout début du script pour qu'il retourne le temps qu'a duré le script? ou bien faut faire un script qui lance le fichier script et on récupère le temps dans un autre fichier?


Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)

Hors ligne

#7 Le 31/01/2018, à 02:19

Watael

Re : Mesure du temps dans un script bash ?

salut,

en bash, il existe une variable SECONDS qui exprime en secondes (!) la durée de la session.
dans un script, parce qu'un script se déroule dans un contexte différent de celui de la session en cours, la variable est réinitialisée au début.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 31/01/2018, à 02:34

pem1664

Re : Mesure du temps dans un script bash ?

Salut, donc il faut utiliser la methode de credenhill alors?
edit  : je viens de tester sur un script super long  :

pi@Cuisine:~/domoticz/scripts $ /usr/bin/time --format='la commande a duré %e secondes' sudo bash /home/pi/domoticz/scripts/DS2438.sh
...
blabla bla
...
le script aura duré 230 secondes
la commande a duré 230.03 secondes

trop bien smile ca me plait ca! merci !

Dernière modification par pem1664 (Le 31/01/2018, à 02:42)


Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)

Hors ligne