나는 명령의 실행 시간을 측정하고 time
명령의 이상한 동작을 확인하고 싶습니다.
time
매뉴얼 페이지 예제에서 언급한 것처럼 -f
또는 옵션을 사용하여 호출 했는데 오류가 --format
발생했습니다 . 실행시간을 측정하는 명령어인줄 command not found
알았는데 ...-f
user@laptop:~$ time -f '%e' sleep 1
-f: Befehl nicht gefunden.
그런 다음 동일한 줄을 다시 호출하여 time
. 결과가 변경되어 예상대로 작동했습니다(wtf?).
user@laptop:~$ /usr/bin/time -f '%e' sleep 1
1.00
이제 혼란스러워요... which
도와줄 수도 없어요:
user@pc:~$ which time
/usr/bin/time
그리고... 이 옵션을 사용하지 않으면 전체 경로가 없어도 잘 작동합니다.
user@laptop:~$ time sleep 1
real 0m1.003s
user 0m0.001s
sys 0m0.002s
옵션을 지정하고 싶은 경우 명령을 올바르게 사용하려면 어떻게 해야 합니까? 전체 경로를 사용하면 작동하는 것 같지만 문제가 있는 것(또는 내가 이해하지 못하는 것)의 신뢰할 수 없는 부작용처럼 보입니까?
편집: 저는 Ubuntu 14.04 LTS를 사용하고 있습니다(신뢰할 수 있음)
답변1
Bash
라는 내장 명령이 있습니다 time
. 따라서 방금 입력 time
하면 . 따라서 맨페이지에 설명된 옵션을 사용하려면 내장 셸이 아닌 해당 프로그램을 호출해야 합니다. 이를 달성하는 한 가지 방법은 전체 경로를 사용하는 것입니다.-f
man time
-f
/usr/bin/time
(IMHO 이것은 bash에서 정말 추악합니다)
자세한 내용은 질문 아래 링크를 참조하세요.
답변2
Boris의 답변에서 정보를 표시하는 방법을 추가하겠다고 생각했습니다.
방금 또 시간이 헷갈렸던 것처럼.
bash에 있는 type
당신의 친구입니다 . 나는 그것을 더 많이 사용해야 한다는 것을 정말로 기억해야 한다. 오래된 csh
습관은 죽기 어렵습니다.
which -a time
/usr/bin/time
type time
time is a shell keyword
type times
times is a shell builtin
type nslookup
nslookup is /usr/bin/nslookup