每次按回车键时打印日期时间

每次按回车键时打印日期时间

date我正在寻找一种每次在终端上运行命令时为命令添加前缀的方法(我当前正在使用zsh)。

原因是我通常运行需要很长时间才能完成的脚本,因此我想了解该进程运行了多长时间。

我知道此信息可在 上获得[h]top,并且我的.zshrc文件中还有一个命令,该命令输出该进程运行所需的时间,但是一旦命令完成,此信息当然可用,我想知道什么时候它开始了。

作为一个例子,基本上我想要的是,对于每个命令cmd,将运行的内容是date; cmd

谢谢!

编辑

我正在寻找这样的东西:

在此输入图像描述

右下角的计数器是我已经拥有的,我只想知道如何date ;为每个命令添加前缀

答案1

如果您想zsh在每次zle接受一行并zsh开始解释其中的代码时打印当前时间,您可以在挂钩中执行此操作preexec()

print-time() print -P '%F{yellow}%D{%FT%T.%2.%z}%f'
preexec_functions+=(print-time)

要在每个命令之前执行此操作,您可以在 DEBUG 陷阱中执行此操作:

TRAPDEBUG() print-time > /dev/tty

但我怀疑你会喜欢这样,因为它实际上会在每个命令之前运行,包括那些在完成小部件和其他挂钩中运行的命令。

请注意,您还可以将时间添加到右侧提示中:

RPS1='%D{%T.%1.}'

相关内容