Je viens de passer à zsh
. Cependant, je n'aime vraiment pas la façon dont la time
commande intégrée génère également la commande de synchronisation. Je préfère de loin la bash
sortie style. Quelqu'un sait comment le changer?
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
Frapper:
[casqa1:~/temp]$ bash
casqa1.nyc:~/temp> time grep foo /dev/null
real 0.0
user 0.0
sys 0.0
Merci,
/ YGA
TIMEFMT=$'\nreal\t%*E\nuser\t%*U\nsys\t%*S'
. Les*
s dans les drapeaux les formatent en heures / minutes selon bash, au lieu de quelques secondes. Plus d'informationsTIMEFMT
ici .Une autre option consiste à désactiver la commande intégrée et à utiliser le temps binaire fourni par votre système d'exploitation. J'ai les éléments suivants dans mon
.zshrc
:De cette façon, le temps est envoyé à STDERR.
la source
Juste une petite précision concernant la réponse très utile de Dennis Williamson (la partie "assez proche"): les
time
sorties intégrées de bash versstderr
, tandis que les sorties de zsh versstdout
.Cette commande peut illustrer la différence:
time (echo abc) 2>/dev/null
En bash, il génère:
En zsh, avec la variable TIMEFMT suggérée:
la source