如何将最近执行的 cli 命令 !!:p 捕获到文本文件中?

如何将最近执行的 cli 命令 !!:p 捕获到文本文件中?

创建按预期工作的简单一行代码需要反复试验。一旦我让它工作起来,这个命令就是我历史上的最后一个命令,我可以回忆起它!!:p

这不起作用: !!:p >> mycommands.txt

我尝试执行的上述命令的正确版本是什么?无需离开命令行,尤其是无需按向上箭头将其复制并粘贴到新文件中,如何重定向!!:p到文件?

答案1

使用 echo 代替 :p 修饰符可以实现这一点,但正如评论中所指出的那样卡米尔·马乔罗夫斯基,这样命令中的引号就会丢失。

为了使它也能与引用命令一起使用,请使用:q 修饰符

echo !!:q >> mycommands.txt

这适用于带有空格、单引号、双引号、反斜杠甚至换行符的命令:

echo "Text with\\" spaces and '
Multiple Lines
'with'
"quotes"
'
echo !!:q >> mycommands.txt

结果是:

$cat mycommands.txt
echo "Text with\\" spaces and '
Multiple Lines
'with'
"quotes"
'

相关内容