Éliminez contenu de la page de la variable:
Quand j'ai essayé votre commande, myduration
contenait le contenu HTML de la page à l'URL je en mon test plus la valeur temps. En ajoutant -s
pour supprimer la barre de progression et en ajoutant -o /dev/null
aux options pour curl
, j'ai pu supprimer la redirection vers /dev/null
et n'avoir que le temps enregistré en myduration
.
Puisque la valeur de myduration
est susceptible d'être bref, vous pouvez utiliser la technique ire_and_curses
montre qui donnent souvent zéro son résultat qui serait inférieur au 1 vous testez (notez que votre message de journal dit "6 secondes", cependant).
résolution Finer:
Si vous souhaitez avoir un test plus fine résolution, vous pouvez multiplier myduration
par 1000 en utilisant une technique comme ceci:
mult1000() {
local floor=${1%.*}
[[ $floor = "0" ]] && floor=''
local frac='0000'
[[ $floor != $1 ]] && frac=${1#*.}$frac
echo ${floor}${frac:0:3}
}
Edit: Cette version de mult1000
gère correctement les valeurs telles que "0,234", "1", "2", "3,5" et "6,789". Pour les valeurs avec plus de trois décimales, les chiffres supplémentaires sont tronqués sans arrondir quelle que soit la valeur ("1.1119" devient "1.111").
Votre script avec les changements que je mentionnés ci-dessus et en utilisant mult1000
(avec mon propre exemple le temps):
myduration=$(curl -s -o /dev/null http://192.168.50.1/mantisbt/view.php?id=1 -w %{time_total}); [[ $(mult1000 $myduration) -gt 3500 ]] && echo "`date +'%y%m%d%H%M%S'` took more than 3.5 seconds to load the page http://192.168.50.1/mantisbt/view.php?id=1 " >> /home/shantanu/speed_report.txt
Ici, il est divisé en plusieurs lignes (et simplifiée) pour le rendre plus lisible dans cette réponse :
myduration=$(curl -s -o /dev/null http://example.com -w %{time_total})
[[ $(mult1000 $myduration) -gt 3500 ]] &&
echo "It took more than 3.5 seconds to load thttp://example.com" >> report.txt
la fonction de plafond est réellement faux car
./int.sh 12.0
renverra 13.0 où il devrait retourner 12 selon la définition de la fonction de plafond (le plus petit nombre entier non inférieur à x) – dm76@ dm76 - Oui, ce cas de bord est un bon point. –