zsh에서 'time' 출력을 bash처럼 보이게 만드는 방법은 무엇입니까?

zsh에서 'time' 출력을 bash처럼 보이게 만드는 방법은 무엇입니까?

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로 전환한 이후로 이것이 나를 괴롭혔습니다. timezsh의 출력을 bash처럼 보이게 만드는 방법은 무엇입니까 ?

답변1

timein 키워드는 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.

관련 정보