我的 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