`time echo`에 출력이 없습니다

`time echo`에 출력이 없습니다

저는 Mac을 사용하고 있으며 명령을 실행하는 데 걸리는 시간을 계산하려고 합니다.

만약 내가한다면

time echo

출력이 없습니다

하지만 내가 그렇게 한다면

time ls

그것은 나에게 시간 함수의 출력을 제공합니다

왜 이런 일이 발생하는지 아시나요?

업데이트: 이것은 제가 zsh를 사용하고 있었고 oh-my-zsh설치했기 때문에 발생한 것으로 나타났습니다. Bash에서는 잘 작동하지만 zsh에서는 출력이 없습니다. 이유를 아시나요?

답변1

zsh에서 time키워드는 내장 기능(또는 기타 유사한 쉘 내부)에 영향을 미치지 않습니다. ~에서이 메일링 리스트 게시물:

추가 참고 사항: 현재 셸에서 실행되는 모든 구성에 적용된 내장 시간은 자동으로 무시됩니다. 따라서 구문상 오프닝이나 반복 루프 등을 넣는 것이 가능하지만 time 키워드 바로 뒤에는 타이밍 통계가 표시되지 않습니다. 서브쉘을 강제로 실행하고 시간을 측정하려면 괄호를 사용해야 합니다.

$ time echo

$ time (echo)

( echo; )  0.00s user 0.00s system 51% cpu 0.001 total

답변2

time 명령은 echo 명령을 생성합니다. zsh에서는 이것이 셸에 내장되어 있으므로 외부 바이너리가 실행되지 않습니다. Bash에서 echo는 /bin/echo에 있는 echo 바이너리를 실행합니다.

간단히 말해서 zsh에는 echo가 내장되어 있으며 bash는 echo 바이너리 파일에서 프로세스를 생성합니다.

관련 정보