Answers:
对于正在运行的进程,您可以执行以下操作:
PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime
作为常规功能,您可以修改外壳程序提示符。这是我的bash提示定义:
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
时间。
但是,这并不能解决所有问题。新的提示将显示进程何时结束,但是当要测量的命令启动时,前一个提示可能已经很旧了。因此,或者您要记住在启动长时间运行的命令之前更新提示,或者必须要记住当前时间才能知道当前进程将花费多长时间。
对于完整的解决方案,您需要一个审核功能(该功能记录流程的开始和结束时间)。但是,如果不能将其限制在外壳上,则可能会导致大量数据。