2012-03-15 4 views
12

일부 작은 .c 프로그램의 실행 시간을 측정하기 위해 gnu 시간을 사용하고 싶었습니다. 예제Gnu 시간 및 형식 출력

다음
-f FORMAT, --format FORMAT 
Use FORMAT as the format string that controls the output of time. See the below more information. 

은 우리가 가진 :

To run the command `ls -Fs' and show just the user, system, and total time: 
time -f "%E real,%U user,%S sys" ls -Fs 

을하지만 예에서이 명령을 실행하려고 할 때 내가 얻을 : 사람에서는 그 기록

time -f '%E real,%U user,%S sys' ls -Fs 
-f: command not found 

real 0m0.134s 
user 0m0.084s 
sys  0m0.044s 

내가 어디서 문제가 궁금해, 내가 실수를 저지르고 있니? 나는 단지 사용자 시간을 보여주고 싶다. 그래서 나는 시간 출력 포맷을 가지고 놀고있다.

답변

12

하나의 배쉬에는 time이라는 쉘 내장이 있습니다. 그것을 지나치는 한 가지 방법은 /usr/bin/time을 입력하는 것입니다. 또 다른 방법은 alias time=/usr/bin/time입니다. 반면 bash는 환경 변수 TIMEFORMAT을 사용합니다.

+0

빠른 답변을 주셔서 감사합니다. TIMEFORMAT 만 사용 하겠지만 그 모든 작업이 가능합니다. – Andna

+1

일부 시스템 (예 : NixOS)에서는'/ usr/bin/time'을 사용할 수 없지만'command time ... '명령은 bash 내장 명령을 피하는 방법으로 작동합니다. – Warbo

+0

위의 점에서,'command'는 POSIX 정의 된 쉘 유틸리티이므로'sh '와'sh'역할을 할 수있는 모든 것들 (bash와 ksh 포함)에서 사용할 수 있어야합니다. 여기에 언급 된 것처럼 https://stackoverflow.com/questions/6365795/invoking-program-when-a-bash-function-has-the-same-name – minopret