외부 명령이 아닌 bash에서 내장“time”명령 사용 사용 enable하거나 command도움을 줄 수있는

time명령으로 작업하면서 time외부 GNU 시간 명령 대신 내장 기능을 사용해야하는 상황을 발견했습니다 /usr/bin/time. 어떻게해야합니까? 어딘가에서 사용 enable하거나 command도움을 줄 수있는 것을 보았지만 도움이되지 않았습니다.

이것은 유스 케이스입니다.

watch "time ls"

/usr/bin/time내가 원하지 않는 외부 명령 을 사용합니다 ! 때 발생 time내가 실행할 때 내부 bash는 함수를 호출 time ls과 같이 터미널에서 :

$ time ls

정반대의 요청에 대한 답변이 여기에 있습니다.

두 명령에는 많은 차이가 있습니다. 내부 time는 더 정확하지만 (필요한) 외부 명령에는 더 많은 옵션이 있습니다 (필요하지 않음).



답변

기본적으로 watch명령을 실행하여 /bin/sh -c '...'표시되는 출력이 명령을 /bin/sh해석하는 방법 time입니다. 당신은 /bin/sh분명히 내장 기능이 없습니다 time.

다른 쉘로 명령을 실행하려면 -x옵션을 사용 하여 기본값을 제거한 다음 원하는 내장 쉘을 명시 적으로 호출하십시오.

watch -x bash -c 'time ls'
watch -x zsh -c 'time ls'

실행 방법에 관계없이 watch보고있는 watch명령 은 명령 을 실행 한 셸의 자식이 아니므로 셸 설정이 직접 관련이 없습니다.