Respuestas:
Para un proceso en ejecución puede hacer esto:
PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime
Como característica general, puede modificar su solicitud de shell. Esta es mi definición de bash prompt:
TERM_RED_START=$'\033[1m\033[31m'
TERM_RED_END=$'\033(B\033[m'
PS1='\nec:$(ec=$?; if [ 0 -eq $ec ];
then printf %-3d $ec;
else echo -n "$TERM_RED_START"; printf %-3d $ec; echo "$TERM_RED_END";
fi) \t \u@\h:\w\nstart cmd:> '
PS2="cont. cmd:> "
La parte relevante para ti es la \t
del momento.
Sin embargo, esto no resuelve todos los problemas. La nueva solicitud se mostrará cuando el proceso haya finalizado, pero la solicitud anterior puede haber sido bastante antigua cuando se inició el comando a medir. Por lo tanto, recuerde renovar la solicitud antes de iniciar comandos de ejecución prolongada o debe recordar la hora actual en la que desea saber cuánto tiempo llevará el proceso actual.
Para una solución completa, necesita una función de auditoría (que registra el tiempo de inicio y finalización de los procesos). Pero eso puede causar una gran cantidad de datos si no se puede restringir al shell.