Bash

防止陷阱改變下劃線變數 $_

  • July 17, 2013

我的 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”而不是最後一個命令參數。

如何更改它以保留$_變數?

你可以這樣做:

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

引用自:https://unix.stackexchange.com/questions/83388