bash에서 자동으로 명령 시간을 어떻게 정할 수 있습니까?


14

에서이 tcsh변수있다 time:

   The time shell variable can be set to execute the time builtin command
   after the completion of any process that takes more than a given number
   of CPU seconds.

이 작업을 어떻게 수행 bash합니까?

답변:


14

bash 소스를 수정하지 않고 정확히 동일한 효과를 얻을 수 있다고 생각하지 않습니다. 그러나 당신은 가까워 질 수 있기를 바랍니다.

bash의 hacky 사전 명령 후크SECONDS변수를 결합하여 벽시계 시간을 방해하지 않는 방식으로 표시 할 수 있습니다. Ville Laurikari 로 인한 간단한 구현은 다음과 같습니다 . 기능 timer_starttimer_stop명령은 명령을 시작하기 직전과 다음 프롬프트를 표시하기 직전에 실행됩니다.

function timer_start {
  timer=${timer:-$SECONDS}
}
function timer_stop {
  timer_show=$(($SECONDS - $timer))
  unset timer
}
trap 'timer_start' DEBUG
PROMPT_COMMAND=timer_stop
PS1='[last: ${timer_show}s][\w]$ '

time모든 명령에 대한 전체 정보 를 얻으려면 Dennis Williamson 의 방법이 있습니다 .

bind '"\C-j": "\C-atime {\C-e;}\C-m"'

명령을 시작하는 대신 Ctrl+ 를 누르면 시간 정보가 표시됩니다. 수정 된 명령이 때때로 구문 상 올바르지 않기 때문에 리 바인딩 (예 : + )은 권장되지 않습니다.JEnterEnterCtrlM

참조 어떻게 마지막 명령의 벽 시간은 배쉬 프롬프트에 넣어 될 수 있는가? 자동 배쉬 프롬프트에서 실행 된 모든 명령과 쇼 타이밍? 다른 방법 에 대해서는 스택 오버플 로가 발생합니다 (단, CPU 시간이 아니라 실시간으로 만 진행됨).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.