답변:
실행중인 프로세스의 경우 다음을 수행 할 수 있습니다.
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
은 시간입니다.
그러나 모든 문제가 해결되는 것은 아닙니다. 프로세스가 종료되면 새 프롬프트가 표시되지만 측정 할 명령이 시작되면 이전 프롬프트가 상당히 오래되었을 수 있습니다. 따라서 장기 실행 명령을 시작하기 전에 프롬프트를 갱신하거나 현재 프로세스가 얼마나 오래 걸 렸는지 알고 자하는 현재 시간을 기억해야합니다.
완벽한 솔루션을 위해서는 감사 기능 (프로세스의 시작 및 종료 시간을 기록)이 필요합니다. 그러나 셸로 제한 할 수없는 경우 엄청난 양의 데이터가 발생할 수 있습니다.