![如何在执行另一个命令后自动输入部分命令?](https://linux22.com/image/1122386/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%89%A7%E8%A1%8C%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E5%90%8E%E8%87%AA%E5%8A%A8%E8%BE%93%E5%85%A5%E9%83%A8%E5%88%86%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我想创建一个函数,通过 来 grep 我的命令行历史记录history | grep {keyword}
。在查看列表并按行号选择命令后,我想通过 来执行它!{line_number}
。
因为在下一个命令中我总是会使用!
,我希望它自动输入并等待我输入行号。我该怎么做
答案1
如果像我一样您将值设置HISTSIZE
为 10000+,则命令的输出grep
可能会非常大而难以解析。
相反,我建议使用reverse-i-search
和i-search
bash 功能:
reverse-search-history
(Ctrl+ r)从当前行开始向后搜索,并根据需要在历史记录中“向上”移动。这是一个增量搜索。
forward-search-history
(Ctrl+ s)从当前行开始向前搜索,并根据需要在历史记录中“向下”移动。这是一个增量搜索。
请注意,为了正常工作,您可能必须禁用 XON/XOFF 流控制,只需输入:stty -ixon