실행 시간의 bash 기록을 저장하시겠습니까?

실행 시간의 bash 기록을 저장하시겠습니까?

bash 기록을 유지할 수 있습니까?총 실행 시간당신이 실행하는 모든 명령?

즉, 모든 명령이 "시간"으로 시작하고 결과가 명령과 함께 기록에 저장되는 것처럼요?

설명: 명령이 시작된 시간의 타임스탬프를 추가할 수 있다는 것을 이미 알고 있지만 알고 싶었습니다.총 실행 시간, 그리고 처음에만 그런 것이 아닙니다.

답변1

시작 스크립트에서 HISTTIMEFORMAT을 정의하면 bash 기록 파일의 각 줄에 타임스탬프를 추가하게 됩니다. 이 변수의 값은 타임스탬프가 화면에 인쇄되어야 하는 방식(*)입니다. 이 내 꺼야:

HISTTIMEFORMAT='%F-%T '

(*) 살펴보세요 man 3 strftime(없으면 man date문제가 해결될 것입니다)

답변2

wait3자식 프로세스의 사용법은 wait4포인터 struct rusage(wait4(2)). 아래에배쉬 소스 코드, 우리는 다음을 발견합니다:

$ egrep -r 'wait[34][[:blank:]]*\(' .
./jobs.c:   wait3 ((union wait *)statusp, options, (struct rusage *)0)
./jobs.c:   wait3 (statusp, options, (struct rusage *)0)
./jobs.c:   wait3 (statusp, options, (int *)0)
$

공백은 (struct rusage *)0리소스 사용량이 환불되지 않음을 의미합니다 bash. 검색은 struct rusagetime_command기능 으로 표시되며 execute_cmd.c다음을 통해 사용 정보를 수집하는 것으로 나타납니다.getrusage(2). 그러나 이는 내장용 TIMEFORMAT이므로 time기록 코드와 교차하지 않는 것으로 보입니다. 패치를 적용하지 않으면 모든 것을 실행 한 다음 일부 파일의 표준 오류에 나타나는 시간 정보를 캡처하는 등 bash의 문제를 해결해야 할 것 같습니다 .time

관련 정보