Ruby 将脚本粘贴到Terminal.app时错误地使用标准输入

Ruby 将脚本粘贴到Terminal.app时错误地使用标准输入,ruby,macos,bash,irb,highline,Ruby,Macos,Bash,Irb,Highline,我已经剪掉了下面的脚本,我经常使用它来半自动化我的一个工作流。 我打开一个bash终端并启动irb,然后粘贴脚本: require 'highline/import' # ... user = ask("User:") repo = ask("Repository:") # ... # Do advanced fancy stuff 现在我希望能够将其粘贴到终端中,但是用户的第一个提示被以下行覆盖:repo=ask(“Repository:”) 有没有办法防止这种行为 我知道我可以写剧本。但

我已经剪掉了下面的脚本,我经常使用它来半自动化我的一个工作流。 我打开一个bash终端并启动irb,然后粘贴脚本:

require 'highline/import'

# ...
user = ask("User:")
repo = ask("Repository:")
# ...
# Do advanced fancy stuff
现在我希望能够将其粘贴到终端中,但是用户的第一个提示被以下行覆盖:
repo=ask(“Repository:”)

有没有办法防止这种行为

我知道我可以写剧本。但是

  • 我觉得把它粘贴到终端上很方便
  • 我想知道在这种情况下,STDIN是如何被击败的
  • 有没有办法防止这种行为

    可以使用命令防止粘贴文本的回显

    stty -echo
    
    -您是否喜欢这是另一个问题,因为这不可避免地也会阻止键入命令的回音,但您可以在输入后再次看到

    stty echo
    

    你从哪里粘贴的?;)加载这些行不是很方便吗?@TomFenech我从笔记中复制了这些。我经常使用这样的脚本片段,当我在一个给定的项目上工作时,总会有一个终端打开。所以从某个路径加载它不是我想要的。。。