"스크립트" 세션 로깅으로 인해 두 번 종료되었습니다.

"스크립트" 세션 로깅으로 인해 두 번 종료되었습니다.

설명된 솔루션을 사용하고 있습니다.여기쉘 세션을 기록하려면 다음 끝에 이것을 추가합니다 /etc/bash.bashrc.

test "$(ps -ocommand= -p $PPID | awk '{print $1}')" == 'script' || (script -f /var/log/shellog/$USER-$(date -u +%Y.%m.%d-%H:%M:%S).${HOSTNAME:-$(hostname)}.$$.log)

이것은 잘 작동하지만 쉘을 종료할 때 스크립트에서 한 번, 쉘에서 한 번, 두 번 종료해야 합니다.

Last login: Wed Aug  6 12:43:29 2014 from *****
Script started, file is /var/log/shellog/camilstaps-2014.08.06-10:43:40.cs.localdomain.16048.log
camilstaps@cs:/$ exit
exit
Script done, file is /var/log/shellog/camilstaps-2014.08.06-10:43:40.cs.localdomain.16048.log
camilstaps@cs:/$ exit
exit

내가 찾은이것, 그에 따라 행을 수정하려고 시도했지만 /etc/bash.bashrc아무것도 변경되지 않습니다.

test "$(ps -ocommand= -p $PPID | awk '{print $1}')" == 'script' || (script -f /var/log/shellog/$USER-$(date -u +%Y.%m.%d-%H:%M:%S).${HOSTNAME:-$(hostname)}.$$.log && exit)

그래야 하기 때문에 test아직 추가하지 않았습니다 script(추가하지 않으면 test계속 새 항목을 만들 것입니다 script). 그런데 두 번 그만 두지 않으려면 어떻게 해야 할까요?

답변1

요청대로. 다음은 작동합니다

[[ $(ps -ocommand= -p $PPID | awk '{print $1}') = script ]] || { script -f /var/log/shellog/$USER-$(date -u +%Y.%m.%d-%H:%M:%S).${HOSTNAME:-$(hostname)}.$$.log && exit ;} 

관련 정보