다음 조합으로 쉘 명령의 실행 시간을 인쇄 할 수 있습니까?
root@hostname:~# "command to execute" && echo "execution time"
답변
bash의 내장 time
(기본적으로 호출해야 함 time command
)과 /usr/bin/time
(전체 경로로 호출해야 함 ) 간에 차이가 있다는 것을 잊지 마십시오 .
내장은 time
항상 stderr로 인쇄하지만 /usr/bin/time
시간의 출력을 특정 파일로 보낼 수 있으므로 실행 된 명령의 stderr 스트림을 방해하지 않습니다. 또한 /usr/bin/time
의 형식은 명령 줄 또는 환경 변수 로 구성 할 수있는 TIME
반면 bash의 내장 time
형식은 환경 변수 로만 구성 할 수 TIMEFORMAT
있습니다.
$ time factor 1234567889234567891 # builtin
1234567889234567891: 142662263 8653780357
real 0m3.194s
user 0m1.596s
sys 0m0.004s
$ /usr/bin/time factor 1234567889234567891
1234567889234567891: 142662263 8653780357
1.54user 0.00system 0:02.69elapsed 57%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+215minor)pagefaults 0swaps
$ /usr/bin/time -o timed factor 1234567889234567891 # log to file `timed`
1234567889234567891: 142662263 8653780357
$ cat timed
1.56user 0.02system 0:02.49elapsed 63%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+217minor)pagefaults 0swaps
답변
time
tty에 실행 시간 정보를 기록하는 대부분의 쉘에 내장 된 명령입니다.
다음과 같은 것을 시도해 볼 수도 있습니다.
start_time=`date +%s`
<command-to-execute>
end_time=`date +%s`
echo execution time was `expr $end_time - $start_time` s.
또는 bash
:
start_time=`date +%s`
<command-to-execute> && echo run time is $(expr `date +%s` - $start_time) s
답변
root@hostname:~# time [command]
또한 실시간 사용과 시스템 사용 시간을 구분합니다.
답변
라인 별 델타 측정의 경우 gnonom을 사용해보십시오 .
다른 명령의 표준 출력에 타임 스탬프 정보를 추가하는 것은 moreutils의 ts와 약간 유사한 명령 줄 유틸리티입니다. 너무 오래 걸리는 기록을 기록하려는 장기 실행 프로세스에 유용합니다.
gnomon에 무엇이든 파이핑하면 각 줄 앞에 타임 스탬프가 추가되어 해당 줄이 버퍼의 마지막 줄이었던 시간, 즉 다음 줄이 나타나는 데 걸린 시간을 나타냅니다. 기본적으로 gnomon은 각 줄 사이에 경과 된 시간 (초)을 표시하지만 구성 할 수 있습니다.
답변
@mob의 답변에 추가 :
에 추가 하면 나노초 정확도 %N
가 date +%s
제공됩니다.
start=`date +%s%N`;<command>;end=`date +%s%N`;echo `expr $end - $start`
답변
복사 또는 해시와 같은 장기 실행 프로세스를 시작하고 나중에 얼마나 오래 걸 렸는지 알고 싶다면 다음과 같이합니다.
$ date; sha1sum reallybigfile.txt; date
결과는 다음과 같습니다.
Tue Jun 2 21:16:03 PDT 2015
5089a8e475cc41b2672982f690e5221469390bc0 reallybigfile.txt
Tue Jun 2 21:33:54 PDT 2015
물론 여기에 구현 된대로 정확하지 않고 경과 시간을 계산하지도 않습니다. 그러나 그것은 간단하고 때로는 필요한 모든 것입니다.
답변
zsh에서는 다음을 사용할 수 있습니다.
=time ...
bash 또는 zsh에서는 다음을 사용할 수 있습니다.
command time ...
이들은 (다른 메커니즘에 의해) 외부 명령이 사용되도록 강제합니다.