time <command>
Bash 형식:
$time ./test.sh
real 0m0.000s
user 0m0.006s
sys 0m0.000s
zsh에서:
$time ./test.sh
./test.sh 0.01s user 0.00s system 94% cpu 0.007 total
zsh로 전환한 이후로 이것이 나를 괴롭혔습니다. time
zsh의 출력을 bash처럼 보이게 만드는 방법은 무엇입니까 ?
답변1
time
in 키워드는 zsh
변수에 지정된 형식으로 출력을 생성합니다 TIMEFMT
.
이 변수의 기본값은 다음과 같습니다.
%J %U user %S system %P cpu %*E total
다음과 같이 변경할 수 있습니다.
TIMEFMT=$'%J\n%U user\n%S system\n%P cpu\n%*E total'
(실제로는 기본 형식 문자열에 개행 문자를 삽입하는 것뿐입니다.)
다음 유형의 출력을 제공합니다.
$ time sleep 2
sleep 2
0.00s user
0.00s system
0% cpu
2.010 total
또는 다음 위치에 더 가깝습니다 bash
.
$ TIMEFMT=$'real\t%E\nuser\t%U\nsys\t%S'
$ time sleep 2
real 2.02s
user 0.00s
sys 0.01s
TIMEFMT
매뉴얼의 변수에 대한 문서를 참조하십시오 zshparam
.
존재하다내 거시스템(zsh 5.7.1 실행), 내용은 다음과 같습니다
TIMEFMT
The format of process time reports with the time keyword. The
default is `%J %U user %S system %P cpu %*E total'. Recognizes
the following escape sequences, although not all may be
available on all systems, and some that are available may not be
useful:
%% A `%'.
%U CPU seconds spent in user mode.
%S CPU seconds spent in kernel mode.
%E Elapsed time in seconds.
%P The CPU percentage, computed as 100*(%U+%S)/%E.
%W Number of times the process was swapped.
%X The average amount in (shared) text space used in
kilobytes.
%D The average amount in (unshared) data/stack space used in
kilobytes.
%K The total space used (%X+%D) in kilobytes.
%M The maximum memory the process had in use at any time in
kilobytes.
%F The number of major page faults (page needed to be
brought from disk).
%R The number of minor page faults.
%I The number of input operations.
%O The number of output operations.
%r The number of socket messages received.
%s The number of socket messages sent.
%k The number of signals received.
%w Number of voluntary context switches (waits).
%c Number of involuntary context switches.
%J The name of this job.
A star may be inserted between the percent sign and flags
printing time (e.g., `%*E'); this causes the time to be printed
in `hh:mm:ss.ttt' format (hours and minutes are only printed if
they are not zero). Alternatively, `m' or `u' may be used
(e.g., `%mE') to produce time output in milliseconds or
microseconds, respectively.