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