我可以做:
!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
也就是说,您需要?
在搜索字符串后面添加一个尾随。