Właśnie się zmieniłem zsh
. Jednak naprawdę nie podoba mi się, w jaki sposób time
wbudowane polecenie generuje również polecenie określające czas. Wolę bash
styl wyjściowy. Czy ktoś wie jak to przełączyć?
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
Grzmotnąć:
[casqa1:~/temp]$ bash
casqa1.nyc:~/temp> time grep foo /dev/null
real 0.0
user 0.0
sys 0.0
Dzięki,
/ YGA
TIMEFMT=$'\nreal\t%*E\nuser\t%*U\nsys\t%*S'
. W*
ów w formatach nich znaczników jako godziny / minuty, jak na bash, zamiast kilku sekund. Więcej informacjiTIMEFMT
tutaj .Inną opcją jest wyłączenie wbudowanego polecenia i użycie pliku binarnego czasu dostarczonego przez system operacyjny. Mam w swoim
.zshrc
:W ten sposób czas jest wysyłany do STDERR.
źródło
Tylko mała precyzja odnośnie bardzo przydatnej odpowiedzi Dennisa Williamsona (część „dość blisko”): wbudowane
time
wyjścia bash dostderr
, a wyjścia zsh dostdout
.To polecenie może zilustrować różnicę:
time (echo abc) 2>/dev/null
W bash generuje:
W zsh, z sugerowaną zmienną TIMEFMT:
źródło