Відповіді:
Для запущеного процесу ви можете зробити це:
PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime
Як загальна функція, ви можете змінити підказку оболонки. Це моє чітке визначення:
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:> "
Відповідна для вас частина \t
часу.
Однак це не вирішує всіх проблем. Новий рядок покаже, коли процес закінчився, але колишній запит, можливо, був досить старим, коли була запущена команда для вимірювання. Отже, або ви пам’ятаєте оновити підказку перед запуском довгих команд, або потрібно запам’ятати поточний час, коли ви хочете знати, як довго триватиме поточний процес.
Для повного рішення вам потрібна функція аудиту (яка реєструє час початку та закінчення процесів). Але це може спричинити величезну кількість даних, якщо вони не можуть бути обмежені оболонкою.