通常,用户会启动一个长时间运行的前台作业,例如 top
、编辑器、电子邮件客户端等,并希望在标题中显示该作业的名称。这是一个更加棘手的问题,只有在 zsh
中才能轻松实现。
zsh
为此目的提供了一个理想的内置函数
preexec() a function which is just before a command is executed
$*,$1,... arguments passed to preexec()
因此,我们可以将作业名称插入到标题中,如下所示
case $TERM in
xterm*)
preexec () {
print -Pn "\e]0;$*\a"
}
;;
esac
注意:preexec()
函数出现在 zsh
的 3.1.2 版本左右,因此您可能需要从早期版本升级。
在其他缺少类似 preexec()
函数的 shell 中,这并不容易。如果有人有例子,请通过电子邮件发送给作者。