Respuestas:
Prueba solo en time
lugar de timethis
.
Aunque tenga en cuenta que a menudo hay una versión de tiempo integrada de shell y una versión binaria, que dará resultados en diferentes formatos:
$ time wget -q -O /dev/null https://unix.stackexchange.com/
real 0m0.178s
user 0m0.003s
sys 0m0.005s
vs
$ \time wget -q -O /dev/null https://unix.stackexchange.com/
0.00user 0.00system 0:00.17elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+613minor)pagefaults 0swaps
A diferencia de su programa "timethis", obtiene tres valores de vuelta. Eso se desglosa en Qué es "hora del sistema" cuando se usa "hora" en la línea de comandos , pero en resumen: real significa "hora del reloj de pared", mientras que el usuario y el sistema muestran la hora del reloj de la CPU, dividida entre el código normal y las llamadas al sistema.
Al usar el ejecutable en time
lugar del shell incorporado, puede especificar el formato de salida y los valores. Por ejemplo, obtenga el tiempo transcurrido real junto con el nombre del comando y los parámetros
/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds
Tenga en cuenta que debe especificar la ruta para time
, de lo contrario, usará el shell de forma predeterminada.
/usr/bin
está en su RUTA?
time
se utilizará la utilidad incorporada del shell .
command time
o \time
para ejecutar la utilidad en lugar del incorporado.
@galois: Los diversos shells tienen un puñado de comandos "incorporados" que tienen prioridad sobre cualquier cosa en el camino. Normalmente esto es ventajoso; los incorporados tenderán a ejecutarse más rápido (porque no se llama a un archivo externo) y, por lo general, dan el resultado deseado (es decir, en el caso del comando de tiempo, normalmente no le importa qué versión está utilizando, a menos que quiera usar el " --format "flag).
Por lo tanto, "tiempo" sin ningún carácter especial (como /) para que se vea como una ruta terminará ejecutando el incorporado, independientemente de cómo se vea su RUTA.
Para forzar al shell a usar el comando de tiempo externo, debe proporcionar la ruta