在部分搜索上打印而不执行 zsh 历史扩展的结果

在部分搜索上打印而不执行 zsh 历史扩展的结果

我可以做:

!systemctl:p打印systemctl reload bind结果(作为历史记录中以systemctl字符串开头的最后一个命令)。

但对命令历史记录的部分搜索执行相同的操作:

!?reload:p结果是zsh: no such event: reload:p

前者查找历史记录中以字符串开头的最新事件,systemctl并将其打印在屏幕上,这要归功于:p修饰符,而不是执行。

我认为:p也是!?如此任何壳。

也导致bash: !?reload:p: event not found.

如何在常见的unix shell中实现部分命令历史搜索中找到的命令行的打印而不是执行?

答案1

根据手动的(强调我的):

!?str[?]

请参阅包含 的最新命令str结尾的“?”如果此引用后跟修饰符,则这是必需的或后跟不被视为 一部分的任何文本str

所以在你的情况下是

!?reload?:p

也就是说,您需要?在搜索字符串后面添加一个尾随。

相关内容