繁体   English   中英

如何检查之前的 Zsh 提示中是否未输入任何内容

[英]How do I check if nothing was typed in the previous Zsh prompt

在 zsh 提示符下,我有一个自定义脚本来显示最后一个命令运行的时间。

我已经开始工作了,但是如何检查用户是否在上一个提示中没有输入任何内容而只是按下了“Enter”或“Ctrl + C”?

在这种情况下,我不想显示用户空闲的时间,因为这对我来说不是有用的信息。

$history[$((HISTCMD-1))]在这种情况下似乎不起作用。 如果用户什么都不输入,只是按回车键,它只会显示最后运行的命令,而不是空字符串。

如果您定义了一个名为zshaddhistory的函数,则每次按下 enter 时都会调用它。 $1是输入的命令,也可以是空命令。 您可以设置一个全局变量来指示已输入空行,并在稍后使用此变量。

注意这个函数的返回值:如果返回 0,则命令被保存到历史记录中; 否则不是。 您可以在zshparam手册页中找到更多相关信息,其中描述了 _HISTORY_IGNORE_,因为此函数的主要用途是控制是否应将命令添加到历史记录中。 因此,另一种方法是也将空行添加到历史记录中,并使用$history原始方法来访问它。 这有一个缺点,即查看空的历史条目并不是真正用户友好的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM