[unix] 특정 명령 시간을 어떻게 설정합니까?

(Linux는 TimeThis.exe와 동일합니다)

다음과 같은 것 :

timethis wget foo.com
Receiving foo.com  
...

wget foo.com took 3 seconds.



답변

time대신에 시도하십시오 timethis.

쉘 내장 버전의 시간 바이너리 버전 이 종종 있다는 것을 알고 있지만 결과는 다른 형식으로 나타납니다.

$ time wget -q -O /dev/null https://unix.stackexchange.com/

real    0m0.178s
user    0m0.003s
sys     0m0.005s

vs

$ \time wget -q -O /dev/null https://unix.stackexchange.com/
0.00user 0.00system 0:00.17elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+613minor)pagefaults 0swaps

“timethis”프로그램과 달리 세 가지 값이 반환됩니다. 즉 아래로 생겼습니다 명령 줄에서 “시간”을 사용하는 경우 “시스템 시간”무엇 , 그러나 짧은 : 실제 수단 “벽 시계 시간”동안 사용자SYS는 일반 코드 및 시스템 호출 사이의 CPU 클럭 시간 분할을 보여줍니다.


답변

time쉘 내장 대신 실행 파일 을 사용하여 출력 형식과 값을 지정할 수 있습니다. 예를 들어 명령 이름 및 매개 변수와 함께 실제 경과 시간을 얻습니다.

/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds

당신이 참고 해야한다 경로를 지정 time, 다른 사용자가 쉘 내장을 기본값으로 사용됩니다.


답변

@galois : 다양한 쉘에는 경로에있는 것보다 우선하는 소수의 “내장”명령이 있습니다. 일반적으로 이것은 유리합니다. 내장 파일은 (외부 파일을 호출하지 않기 때문에) 더 빠르게 실행되는 경향이 있으며 일반적으로 원하는 결과를 제공합니다 (예를 들어, 시간 명령의 경우 ” –format “플래그).

따라서 경로처럼 보이도록 /와 같은 특수 문자가없는 “시간”은 PATH의 모양에 관계없이 내장을 실행하게됩니다.

쉘이 외부 시간 명령을 사용하도록하려면 경로를 제공해야합니다.


답변