粘贴bash命令,但确保它不运行

时间:2019-06-15 01:56:06

标签: bash shell terminal

有时候,当您使用bash进行 ctrl - v 时,即使您不打算运行它,它也会运行该命令-是否可以粘贴命令进入bash shell /终端,确保您实际上没有运行任何命令?

如果您可以通过编程方式设置终端提示上的内容,则可以在MacOS上使用bash进行操作:

export BASH_PROMPT="$(pbpaste)"

与我刚刚问过的另一个问题相关: How to change the value that's in the prompt

3 个答案:

答案 0 :(得分:1)

在bash中使用^ X ^ E或Ctrl + X Ctrl + E打开$ EDITOR以输入命令。

根据需要粘贴和/或编辑尽可能多的行。完成后,保存并退出,然后bash将运行它。

(在vi模式下,快捷方式为v

答案 1 :(得分:1)

有一个Readline变量:

  

enable-bracketed-paste
  当设置为On时,Readline将以一种方式配置终端,使其能够将每个粘贴作为单个字符串插入到编辑缓冲区中,而不是像对待每个字符一样从键盘读取。这样可以防止将粘贴的字符解释为编辑命令。默认值为off

要启用此功能,请输入类似

set enable-bracketed-paste on

进入您的~/.inputrc

这是在Bash 4.4 / Readline 7.0中引入的。

答案 2 :(得分:0)

是的。复制行时需要小心。如果复制到最后一个字符的末尾,则不会复制换行符,如果复制时稍稍超过最后一个字符或移至下一行,则将包括换行符。

如果在副本中包含换行符,则在粘贴时就像按Enter键。否则,不会。

我意识到这并没有回答您的问题,因为您正在询问粘贴而不是复制。我认为答案是否定的,您不能以不运行命令的方式粘贴,必须首先复制(^ C)。