¿Alguien sabe un medio de poner un comando 'time' antes de cada comando en una sesión bash?
¿Alguien sabe un medio de poner un comando 'time' antes de cada comando en una sesión bash?
Respuestas:
Perdón por la respuesta incorrecta antes, entendí mal su pregunta.
Para agregar el tiempo antes de cada comando que ejecute en el shell, puede hacer algo como esto
bind 'RETURN: "\e[1~time \e[4~\n"'
Esto volverá a vincular la clave de retorno. Ahora, cada vez que presione Intro en lugar de escribir una nueva línea \ n irá al principio de la línea, ingrese el texto 'tiempo' y un espacio, vaya al final de la línea e ingrese la nueva línea \ n produciendo así el deseado efecto.
Si no desea sacrificar su tecla Intro, puede hacer una 'segunda' tecla de entrada de referencia como F12 vinculando el comando de esta manera
bind '"\e[24~": "\e[1~time \e[4~\n"'
Ahora, en lugar de reemplazar la tecla de retorno, vincula F12.
El trasfondo de todo esto es que bash usa la línea de lectura de GNU para leer comandos. Entonces readline sería un buen punto de partida para una mayor manipulación de comandos, etc.
Me doy cuenta de que esto está fuera del alcance de esta pregunta, pero ...
En zsh
(que, que yo sepa, es un super conjunto de bash) si configura la siguiente variable en su .zshrc
archivo:
export REPORTTIME=5
Cada comando que demore más de 5 segundos (estoy bastante seguro) mostrará la salida de time
. Todos los comandos que se completan más rápidamente no lo hacen. Y en esos casos a uno realmente no le importa, por lo que es bueno no desordenar las cosas. También hay muchas otras características interesantes zsh
que puedes disfrutar mientras lo haces.
Incluya \ t en su cadena de solicitud. Incluirá el tiempo en su solicitud en el punto donde lo incluya. Ver: http://www.ibm.com/developerworks/linux/library/l-tip-prompt/
PS1 parece ser la forma estándar de hacer algo como esto.
time
hace (mide cuánto tiempo tardó en ejecutarse un comando).