目前我的 bash 提示符如下所示
$ echo $PS1
# \[\e[34m\][\t]\[\e[0m\] \[\e]0;\w\a\]\[\e[34m\]\u@\h: \[\e[34m\]\w\[\e[0m\]\n$
$
问题是,\t
只会显示呈现提示的时间(这将非常接近最后一个命令的完成时间)。
对我来说,显示当前命令进程的启动时间会更有用。有没有办法做到这一点?
答案1
如果我理解正确的话,您希望在启动当前命令时更改提示。我认为 bash 没有提示更改功能,但如果您可以找到它(对于多行命令来说不太容易),您可以重新绘制提示。
在 zsh 中,您将使用该precmd
函数。 Bash 没有类似的功能,但是它可以被黑客攻击。
答案2
不可以,因为出现提示和您输入命令然后按下ENTER按键之间可能有任意时间长度。
您可以为非命令设置别名(例如多伊特)显示时间,然后执行传递的命令。它需要您记住每次都使用它,并且它仅适用于您配置它的系统(和帐户)。