Bash
防止陷阱改變下劃線變數 $_
我的 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