有人曾经向我展示了如何用替换的输出替换当前命令(输入行)。我怀疑这是一个 readline 函数,但不记得是哪个。这个想法基本上是,如果你输入类似的东西
$ cd `pwd` <READLINE-MACRO such as M-b or C-a>
那么命令行将变为:
$ cd /home/username/files
并且在您运行命令后,历史文件将具有cd /home/username/files
而不是 'cd `pwd`'
有人曾经向我展示了如何用替换的输出替换当前命令(输入行)。我怀疑这是一个 readline 函数,但不记得是哪个。这个想法基本上是,如果你输入类似的东西
$ cd `pwd` <READLINE-MACRO such as M-b or C-a>
那么命令行将变为:
$ cd /home/username/files
并且在您运行命令后,历史文件将具有cd /home/username/files
而不是 'cd `pwd`'
根据Bash 参考手册的第 8.4.8 节“一些杂项 [Readline] 命令”:
shell-expand-line (M-C-e)
像 shell 一样展开该行。这将执行别名和历史扩展以及所有 shell 单词扩展(请参阅Shell Expansions)。
因此,只需输入您的命令:
cd `pwd`
然后按 Alt+Ctrl+e 以实现命令替换:
cd /home/username/files
然后按 Enter。
我猜你会发现这样的情况:首先你跑
cd`密码`
然后当你运行时:
!cd
它将搜索您的历史 cd 命令并将 `pwd` 替换为 /home/username/files
是吗?