형식 옵션으로 "시간" 호출

형식 옵션으로 "시간" 호출

나는 명령의 실행 시간을 측정하고 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하면 . ​따라서 맨페이지에 설명된 옵션을 사용하려면 내장 셸이 아닌 해당 프로그램을 호출해야 합니다. 이를 달성하는 한 가지 방법은 전체 경로를 사용하는 것입니다.-fman 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

관련 정보