Eliminar el contenido de la página de la variable:
Cuando traté de su comando, myduration
contenía el contenido HTML de la página de la URL que utilicé en mi prueba más el valor del tiempo Al agregar -s
para suprimir la barra de progreso y agregar -o /dev/null
a las opciones para curl
, pude eliminar la redirección a /dev/null
y solo tengo el tiempo guardado en myduration
.
Dado que es probable que sea corta el valor de myduration
, puede utilizar la técnica de ire_and_curses
muestra que a menudo producir cero como resultado de lo cual sería inferior al 1 está tratando de detectar (tenga en cuenta que su mensaje de registro dice "6 segundos", sin embargo).
resolución más fina:
Si le gustaría tener una prueba de resolución más fina, se puede multiplicar por myduration
1000 usando una técnica como esta:
mult1000() {
local floor=${1%.*}
[[ $floor = "0" ]] && floor=''
local frac='0000'
[[ $floor != $1 ]] && frac=${1#*.}$frac
echo ${floor}${frac:0:3}
}
Editar: Esta versión de mult1000
maneja correctamente valores tales como "0.234", "1", "2.", "3.5" y "6.789". Para valores con más de tres decimales, los dígitos adicionales se truncan sin redondeo, independientemente del valor ("1.1119" se convierte en "1.111").
Su guión con los cambios que he mencionado anteriormente y utilizando mult1000
(con mi propio ejemplo el tiempo):
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
Aquí se divide en varias líneas (y simplificada) para que sea más fácil de leer aquí en esta respuesta :
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 función de techo es realmente incorrecta ya que
./int.sh 12.0
devolverá 13.0 donde debería regresar 12 según la definición de la función de techo (el entero más pequeño no menos de x) – dm76@ dm76 - Sí, ese borde es un buen punto. –