Pages : 1
#1 Le 13/11/2012, à 17: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, à 18: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, à 18:33)
Hors ligne
#3 Le 13/11/2012, à 18: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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#4 Le 14/11/2012, à 09: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, à 09: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, à 01:01
- pem1664
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
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, à 01: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.
En ligne
#8 Le 31/01/2018, à 01: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 ca me plait ca! merci !
Dernière modification par pem1664 (Le 31/01/2018, à 01:42)
Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)
Hors ligne
Pages : 1