「スクリプト」セッションのロギングのために2回終了しました。

「スクリプト」セッションのロギングのために2回終了しました。

説明されたソリューションを使用しています。ここシェルセッションを記録するには、次の最後にこれを追加します/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)

これはうまく機能しますが、シェルを終了するときにスクリプトで1回、シェルで1回、2回終了する必要があります。

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)。しかし、2回やめないようにするにはどうすればよいですか?

答え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 ;} 

関連情報