我正在尝试设置我的环境,以便asciinema自动记录所有已打开的终端会话,以便能够轻松地重播我的历史记录中的任何内容。
我使用zsh
shell,我在.zshrc
中运行它:
if [ "$ASCIINEMA_REC" != "1" ]; then
local out="rec.json"
local loc="$HOME/.asciinema"
if [ -d "${loc}" ]; then
out="${loc}`pwd`/rec_`date +'%Y-%b-%d_%H-%M-%S'`_pts-`basename $TTY`.json"
mkdir -p "`dirname ${out}`"
fi
asciinema rec -q -w 1 ${out};
fi
然而问题是当我关闭终端窗口时(使用 X )。输出未正确关闭并最终为空。此外,初始化需要更长的时间,因为它初始化zsh shell两次。
答案 0 :(得分:1)
我会尝试trap
SIGHUP
和EXIT
,这样您就可以在终端关闭时处理清理命令。
trap 'command' SIGHUP EXIT
因此,在您的情况下,可能确保关闭伪终端正确运行asciinema
。
也许:
trap 'exit 0;' SIGHUP EXIT # Should exit the current terminal session, hopefully the asciinema one!