Você pode fazer:
trap '__=$_; timer_start; : "$__"' DEBUG
Eu tenho o seguinte código no meu bashrc para obter o tempo de execução do último comando do link
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]$ '
mas quando eu executo echo $_
ele mostra "timer_start" em vez do último parâmetro de comandos.
Como posso alterar isso para preservar a variável $_
?