zsh post 命令函数/钩子

Geo*_*way 23 zsh shell

在命令完成后是否有相当于 zsh 的 precmd 来执行功能?

我正在寻找一种方法来向自己发送超过 60 秒的任何进程的通知。如果命令花费的时间长于 REPORTTIME 秒中设置的值,则 Zsh 具有打印用于每个命令的资源摘要的强大功能。据我所知,唯一可用的选项是在 TIMEFMT 中打印格式。

(更具体地说,如果在分离的 tmux 会话中运行的任何进程需要超过 60 秒才能完成,我希望通过https://pushover.net/向自己发送通知。)

小智 2

您可以使用preexec来开始计算执行后的时间,然后命令执行完成后和绘制提示之前precmd运行,以评估您是否需要通知(并发送通知)。