트랩이 밑줄 변수 $_를 변경하지 못하도록 방지

트랩이 밑줄 변수 $_를 변경하지 못하도록 방지

마지막 명령의 실행 시간을 얻으려면 bashrc에 다음 코드가 있습니다.https://stackoverflow.com/a/1862762

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]$ '

하지만 실행하면 echo $_마지막 명령 인수 대신 "timer_start"가 표시됩니다.

$_변수를 유지하려면 어떻게 변경해야 합니까 ?

답변1

다음을 수행할 수 있습니다.

trap '__=$_; timer_start; : "$__"' DEBUG

관련 정보