Acabo de cambiar a zsh. Sin embargo, realmente no me gusta cómo el timecomando incorporado también genera el comando que está cronometrando. Prefiero el bashestilo de salida. ¿Alguien sabe cómo cambiarlo?
Zsh:
[casqa1:~/temp]$ time grep foo /dev/null
/usr/local/gnu/bin/grep --color -i foo /dev/null 0.00s user 0.00s system 53% cpu 0.004 total
Golpetazo:
[casqa1:~/temp]$ bash
casqa1.nyc:~/temp> time grep foo /dev/null
real 0.0
user 0.0
sys 0.0
Gracias,
/ YGA

TIMEFMT=$'\nreal\t%*E\nuser\t%*U\nsys\t%*S'. La*s en las banderas los formatea como horas / minutos según bash, en lugar de solo segundos. Más informaciónTIMEFMTaquí .Otra opción es deshabilitar el comando incorporado y usar el tiempo binario proporcionado por su sistema operativo. Tengo lo siguiente en mi
.zshrc:De esta manera, el tiempo sale a STDERR.
fuente
Solo una pequeña precisión con respecto a la respuesta muy útil de Dennis Williamson (la parte "bastante cercana"):
timesalidas integradas de bash astderr, mientras que las salidas de zsh astdout.Este comando puede ilustrar la diferencia:
time (echo abc) 2>/dev/nullEn bash, genera:
En zsh, con la variable TIMEFMT sugerida:
fuente