impede que o trap altere a variável de sublinhado $ _

2

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 $_ ?

    
por f0i 17.07.2013 / 17:26

1 resposta

1

Você pode fazer:

trap '__=$_; timer_start; : "$__"' DEBUG
    
por 17.07.2013 / 19:08