运行Ruby脚本时Cygwin和命令提示符之间的行为差​​异

时间:2014-05-08 16:44:13

标签: ruby cygwin gets puts

我正在运行学习Ruby的艰难之路exercise 14。如果我在cmd中运行脚本它工作正常,但我一直在使用Cygwin因为它更好。当我使用此命令在cygwin中运行它时:

ruby ex14.rb Devon

我得到以下输出

test
one
two
Hi Devon, I'm the ex14.rb script.
I'd like to ask you a few questions.
Do you like me Devon?
> Where do you live Devon?
> What kind of computer do you have?
> Alright, so you said test about liking me.
You live in one.  Not sure where that is.
And you have a two computer.  Nice.

也就是说,该程序启动并立即运行三个STDIN.gets.chomp()命令,一旦它完成所有内容putsprints一次。

有没有办法解决这个问题?我显然希望按照它们编写的顺序运行这些行。我不确定谷歌会出现这种类型的错误 - “cygwin”,“ruby”,“输出延迟”和“失序”的组合没有任何相关性。无论如何,这些搜索词似乎含糊不清。

到底发生了什么,是否有解决方案?

1 个答案:

答案 0 :(得分:0)

我认为这与dos和unix之间的CR LF差异有关。 试试这个...

set -o igncr

在运行脚本之前。