외부 명령 대신 bash에 내장된 "time" 명령을 사용하세요.

외부 명령 대신 bash에 내장된 "time" 명령을 사용하세요.

이 명령을 사용하다가 외부 명령 대신 time내장된 GNU time 명령을 사용해야 하는 상황에 부딪혔습니다 . 그럼 어떻게 해야 하나요? 어딘가에서 and/or를 사용하면 도움이 될 것이라고 보았지만 그렇지 않습니다.time/usr/bin/timeenablecommand

사용 사례는 다음과 같습니다.

watch "time ls"

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

$ time ls

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

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

답변1

기본적으로 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이를 실행하는 셸의 하위 명령이 아니므로 셸 설정은 직접적인 관련이 없습니다.

관련 정보