{time}의 출력을 리디렉션합니다.

{time}의 출력을 리디렉션합니다.

웹 서버에 대한 단일 요청을 벤치마킹하려고 하는데 그렇게 하는 데 문제가 있습니다. 특히 명령의 출력을 리디렉션하는 데 문제가 있습니다 time.

내가 그냥 달리면

time curl "http://www.google.com"

내 결과는 전신 응답과 time명령 출력입니다.

리디렉션을 통해 실행하면

time curl "http://www.google.com" 1> out.log 2> err.log

여전히 out.log응답 본문이 표시되고 err.log컬 명령의 출력이 표시됩니다.

그러나 문제는 명령의 출력이 time여전히 터미널에 인쇄된다는 것입니다.

[501] ~ > time curl "http://www.google.com" 1> out.log 2> err.log

real    0m0.092s
user    0m0.004s
sys     0m0.004s

[502] ~ > cat err.log
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 19093    0 19093    0     0   225k      0 --:--:-- --:--:-- --:--:--  227k

출력은 어느 버퍼에 있으며 time파일에 어떻게 넣나요? 내 이해로는 err.log.

답변1

당신은 사용해 볼 수 있습니다 { time curl -s https://www.google.com ; } > body.txt 2> time.txt

답변2

bash 내부 버전을 사용하지 않고 GNU 도구(예: )를 사용하는 경우 아래 설명된 옵션을 선택할 /usr/bin/time수 있습니다 .-oman time

/usr/bin/time -po outfile.txt curl "http://www.google.com"

에 시간을 쓸 것입니다 outfile.txt.

GNU 시간에는 출력 형식 지정을 위한 다양한 옵션이 있습니다. 자세한 내용은 매뉴얼 페이지를 참조하세요.

관련 정보