Altera o formato de saída do tempo do zsh

15

Acabei de mudar para zsh . No entanto, eu realmente não gosto de como o comando time builtin também gera o comando que é o tempo. Eu prefiro muito mais a saída do estilo bash . Alguém sabe como mudar isso?

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

Bash:

[casqa1:~/temp]$ bash
casqa1.nyc:~/temp> time grep foo /dev/null

real        0.0
user        0.0
sys         0.0

Obrigado,

/ YGA

    
por YGA 17.11.2009 / 22:37

3 respostas

23

Isso é bastante próximo:

$ TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S'

$ time sleep 1

real    1.01s
user    0.00s
sys     0.00s
    
por 18.11.2009 / 00:50
7

Outra opção é desabilitar o comando interno e usar o binário de tempo fornecido pelo seu sistema operacional. Eu tenho o seguinte no meu .zshrc :

disable -r time       # disable shell reserved word
alias time='time -p ' # -p for POSIX output

Desta forma, o tempo é enviado para STDERR.

    
por 11.04.2013 / 13:10
3

Apenas uma pequena precisão em relação à resposta muito útil de Dennis Williamson (a parte "razoavelmente próxima"): o time de bash produz saída para stderr , enquanto o zsh produz para stdout .

Este comando pode ilustrar a diferença: time (echo abc) 2>/dev/null

No bash, ele gera:

    $ time (echo abc) 2>/dev/null
    abc

Em zsh, com a variável TIMEFMT sugerida:

    $ time (echo abc) 2>/dev/null
    abc

    real    0.00s
    user    0.00s
    sys     0.00s
    
por 11.12.2012 / 16:08

Tags