粘贴命令时停止终端自动执行


27

是的,这是一个令人讨厌的功能,因为这种情况发生了,而有时却没有,很奇怪。

我将命令粘贴到终端,以调整其参数,有时它会执行我粘贴的第二个命令。有时并非如此。

从尴尬(在IRC上发布荒谬的评论)到危险。

如何永久关闭此功能?我从不,从不,也永远不希望终端在粘贴到终端时自动执行。


可能有兴趣- bbs.archlinux.org/viewtopic.php?id=95548,还人民以自己的隐藏内容到副本上进行攻击/粘贴reddit.com/r/linux/comments/1bv54e/...
圣马特奥

1
哇,Ubuntu应该内置一个功能来阻止这种情况。您什么时候想将回车符粘贴到终端机中?
Starkers

解决方法之一是使用类似oh-my-zsh或任何其他终端设备的替代品。
Pramesh Bajracharya

Answers:


28

没有自动执行。您可能还在命令后复制一个换行符(或更多)。

如果粘贴中断的命令,则外壳程序(命令行)会认为您自己按下了中断(回车,返回)按钮。


该答案仅说明了OP为何获得了不良行为。但是,在另一个答案中, OP的问题有一个真正的解决方案


5
没错,但是问题是,如果可能的话,如何阻止它:)
Pawel Cioch


13

一种真正的解决方案是使用打开编辑模式,ctrl-x ctrl-e然后将剪贴板安全地粘贴到所选的编辑器(通常为emacs或vim)中。编辑完命令后,保存并退出,它将在命令行中运行。对于长命令或复杂命令,这是一个好习惯,尤其是在将提交哈希粘贴到git命令中时,并且从长远来看可以帮助您避免一些可怕的结果。

可以通过设置VISUAL和EDITOR变量来更改编辑器(它们具有不同的含义,请参见此处)。


哇,事情总会有几十年的使用Linux :)感谢后去学习,这是唯一的答案,实际上解决了这个问题
törzsmókus

听起来好像它可以在真正的Linux终端上运行,但是不幸的是,这对PuTTY用户没有帮助。还有其他选择吗?
Codesmith '18

1
@Codesmith我相信Pawel Chioch对已接受答案的评论可能对您有所帮助:serverfault.com/questions/731022/…–
borrascador

1
@borrascador好点!不知道我怎么想的。谢谢!:)
Codesmith '18

5

粘贴之前,请输入#,然后粘贴您的行。它不会执行,您可以删除#并在修改完成后按Enter键。


您也可以使用trueAKA :,这基本上是一个无操作命令。
wjandrea

1
@WJAndrea我不建议这样做,因为它会破坏退出状态($?)... true并不是真正的nop,它返回退出状态0。另一方面,注释完全被忽略,因此不会改变$?
brhfl

4
只会停止执行第一行。如果OP粘贴至少两个换行符的文本,它们将再次被拧紧。
törzsmókus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.