Shell

在部分搜尋中列印而不執行 zsh 歷史擴展的結果

  • October 8, 2017

我可以做:

!systemctl:p``systemctl reload bind列印結果(作為歷史中以字元串開頭的最後一個命令)systemctl

但對命令歷史記錄的部分搜尋執行相同的操作:

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

前者查找歷史中以字元串開頭的最新事件systemctl並將其列印在螢幕上,這要歸功於:p修飾符,而不是執行。

我認為在任何外殼上:p也是如此。!?

並且bash也會導致bash: !?reload:p: event not found.

如何在常見的 unix shell 中實現部分命令歷史搜尋中找到的命令行的列印和不執行?

根據手冊(強調我的):

!?str[?]

請參閱包含 的最新命令str尾隨的“?” 如果此引用後面要跟一個修飾符或後面跟任何不屬於str.

所以在你的情況下

!?reload?:p

也就是說,您需要?在搜尋字元串之後添加一個尾隨。

引用自:https://unix.stackexchange.com/questions/396903