将脚本粘贴到Terminal.app时错误地使用STDIN

时间:2014-10-04 09:04:48

标签: ruby macos bash irb highline

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

require 'highline/import'

# ...
user = ask("User:")
repo = ask("Repository:")
# ...
# Do advanced fancy stuff

现在我希望能够将其粘贴到终端中,但是用户的第一个提示会被以下行覆盖:repo = ask("Repository:")

有没有办法防止这种行为。

我知道我可以写一个脚本。但是

  1. 我觉得将它粘贴到终端
  2. 很方便
  3. 我想知道在这种情况下如何以某种方式使STDIN失效

1 个答案:

答案 0 :(得分:0)

  

有没有办法防止这种行为。

您可以使用命令

阻止粘贴文本的回显
stty -echo

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

stty echo