我正在尝试设置我的环境,以便所有打开的终端会话都由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两次,因此现在的初始化时间更长。
最佳答案
我将尝试trap
SIGHUP
和EXIT
以便您可以在终端关闭时处理清除命令。
trap 'command' SIGHUP EXIT
所以,在您的例子中,可能要确保您正确地关闭了
asciinema
运行的伪终端。也许 吧:
trap 'exit 0;' SIGHUP EXIT # Should exit the current terminal session, hopefully the asciinema one!
参考:Which signals are sent when closing a terminal