sincronización automática cada comando ejecutado y mostrar en bash? [duplicar]

StackOverflow https://stackoverflow.com/questions/1176386

  •  19-09-2019
  •  | 
  •  

Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

         

A menudo sucede que se olvide de las ejecuciones de forma explícita prefijo con el comando "tiempo", a ser posible me gustaría ver en la próxima Shell Indicador cuánto tiempo real el último comando tomó (en cada comando).

Ya rastreado a través de la documentación de fiesta, pero no pudo encontrar nada relacionado.

¿Fue útil?

Solución

Usted puede hacer esto:

$ bind '"\C-j": "\C-atime \C-m"'

O dicho de esto en su ~/.inputrc:

"\C-j": "\C-atime \C-m"

A continuación, cuando se quiere hacer time sleep 1 debería escribir sleep 1 y presione Ctrl + J en lugar de Intro .

No recomendaría el canje de la j y m en el comando bind (o en el archivo .inputrc). Cada vez que le presiona Intro obtendría time añadió que podría ser bastante molesto y podría causar errores al escribir un comando de múltiples líneas.

Se podría añadir esto a su ~/.bashrc para que la salida de time más compacta:

export TIMEFORMAT='r: %R, u: %U, s: %S'

(similar a mi respuesta aquí ).

Otros consejos

Otro hilo stackoverflow cubre la esencia la misma pregunta. Mi respuesta en ese hilo puede resumirse como:

trap 'SECONDS=0' DEBUG
export PS1='your_normal_prompt_here ($SECONDS) # '

... para mostrar el número de segundos como un entero, o:

seconds2days() { # convert integer seconds to Ddays,HH:MM:SS
    printf "%ddays,%02d:%02d:%02d" $(((($1/60)/60)/24)) \
    $(((($1/60)/60)%24)) $((($1/60)%60)) $(($1%60)) |
    sed 's/^1days/1day/;s/^0days,\(00:\)*//;s/^0//' ; }
trap 'SECONDS=0' DEBUG
PS1='other_prompt_stuff_here ($(seconds2days $SECONDS)) # '

.. para "Ddays, HH: MM: SS". Con los principales valores vacíos eliminan

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top