粘贴到终端,包括评论问题

粘贴到终端,包括评论问题

这在某种程度上是我上一个问题的后续:将多个命令粘贴到终端在用户输入时停止


将以下内容粘贴到终端可以按预期工作:

(
echo test1
# some comment
echo test2
)

但是按向上箭头重复该命令会给出以下明显错误的命令:

( echo test1 echo test2; )

粘贴不带注释的相同内容并按向上箭头会给出预期的命令:

(echo test1; echo test2)

一个简单的解决方法是在每行之前添加;注释。

但为什么会这样呢?这是一个错误吗?

我用的是bash。 gnome-terminal 和 tilix 中的行为相同。

答案1

问题不在于你粘贴到哪里,而在于你从哪里粘贴。此外,如果您使用 Windows,您将永远不知道复制了什么以及将粘贴什么(空格、奇怪的行结尾、类似 xml 的格式以及所有这些使 CP 操作在 win10 中成为痛苦的东西)。

如果您需要粘贴要在终端中运行的代码,那么它fc是您最好的朋友。它的作用是打开你的编辑器(在$EDITOR变量中配置),例如 vim,并允许你格式化最后一个命令并在退出时执行它。通过这种方式,您可以粘贴您需要的任何内容并在运行之前对其进行修改,这也有助于清理您的输入。如果您需要对上一个命令进行大量更改,则非常好。

正如评论中的某人所说,将代码粘贴到终端中直接执行从来都不是一个好主意,并且可能会导致代价高昂的错误。

相关内容