'log de sessão' script me faz sair duas vezes

1

Estou usando uma solução descrita aqui para registrar minhas sessões de shell adicionando-a ao final de /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)

Isso funciona bem, no entanto, quando eu saio do shell, tenho que sair duas vezes: uma vez do script e uma vez do shell:

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

Eu encontrei este e tentei modificar a linha em /etc/bash.bashrc em conformidade, mas isso não muda nada:

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)

Eu suponho que é porque eu tenho que test que eu não estou em script (sem o test continua fazendo novo script s). Mas como posso fazer com que eu não tenha que sair duas vezes?

    
por Keelan 06.08.2014 / 12:46

1 resposta

1

Como solicitado. O seguinte deve funcionar

[[ $(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 ;} 
    
por 06.08.2014 / 13:26