2009-07-24 5 views

Respuesta

9

Usted puede hacer esto:

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

O dicho de esto en su ~/.inputrc:

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

Entonces, cuando usted quiere hacer time sleep 1 debería escribir sleep 1 y presiona Ctrl +J en lugar de Ingrese.

No recomendaría el intercambio de j y m en el comando bind (o en el archivo .inputrc). Cada vez que presione Ingrese, se agregará time, lo que podría ser bastante molesto y causaría errores al escribir un comando de varias 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 here.)

+0

+1 truco interesante. – neuro

+1

¡Genial, gracias! (lo siento, tardó tanto tiempo para responder) – mark

6

Another stackoverflow thread cubre la esencia la misma pregunta. Mi respuesta en ese hilo se puede resumir 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)) # ' 

..for "Ddays, HH: MM: SS "con los principales valores vacíos eliminados.

Cuestiones relacionadas