有没有办法在 bash 历史记录中保存命令而不执行它?例如
$ cmd [a long list of arguments]
Run Code Online (Sandbox Code Playgroud)
现在在打字时我记得我想先做点别的。我可以有类似的东西吗
$ cmd [a long list of arguments][some-key-strokes]
Run Code Online (Sandbox Code Playgroud)
这实际上并没有执行,而是进入 bash 历史记录,以便我以后可以使用它?
使用命令的-s选项history:
history -s cmd arg1 arg2
Run Code Online (Sandbox Code Playgroud)
history -s方便的是,对自身的调用不会添加到命令历史记录中,因此在您的历史记录中,它看起来好像是您在cmd没有实际执行的情况下执行的。
可能有更好的方法,但您可以使用历史扩展的:p修饰符在不执行的情况下打印当前注释行。 !#是当前行,%它本身不会匹配任何内容
$ cmd [arguments] !#%:p
Run Code Online (Sandbox Code Playgroud)