쉘 확장 명령의 실행 시간을 어떻게 측정합니까?
예를 들어:
➜ time sleep $(sleep 3; echo 1)
sleep $(sleep 3; echo 1) 0.00s user 0.00s system 0% cpu 1.003 total
대체 명령의 타이밍을 무시합니다.
4초를 출력하는 데 걸리는 총 시간을 어떻게 측정할 수 있나요?
답변1
대답은 생각보다 간단합니다. ~에 귀속됨존 B(...)
, 이를 달성하기 위해 서브쉘을 사용할 수 있습니다 .
➜ time (sleep $(sleep 3; echo 1))
( sleep $(sleep 3; echo 1); ) 0.00s user 0.00s system 0% cpu 4.007 total
답변2
이것은 zsh에서 발생합니다.
$ zsh -c 'time sleep $(sleep 3; echo 1)'
sleep $(sleep 3; echo 1) 0,00s user 0,00s system 0% cpu 1,001 total
하지만 bash(또는 ksh)에서는 그렇지 않습니다.
$ bash -c 'time sleep $(sleep 3; echo 1)'
real 0m4.003s
user 0m0.000s
sys 0m0.000s
간단한 해결책은 일부 그룹화를 사용하는 것입니다.
$ zsh -c 'time ( sleep $(sleep 3; echo 1); )'
( sleep $(sleep 3; echo 1); ) 0,00s user 0,00s system 0% cpu 4,003 total