停止列表运行Ruby终端

时间:2013-01-18 02:38:12

标签: ruby terminal

我正在学习运行一些教程和github ruby​​程序。当我在终端中运行其中一个程序时,它要求我输入一些东西,每行一个。我知道这很愚蠢,但我怎么告诉它我已经完成了在终端输入的东西?

puts "Please input a list of stocks, one per line"
LifeCycleReportItem.setup
report = Report.new
tickers = Array.new
STDIN.readlines.each { | ticker |
  tickers.push(ticker.chomp)
}

这是终端:

Please input a list of stocks, one per line
GOOG
AAPL

我怎么告诉它我已经完成了?

2 个答案:

答案 0 :(得分:4)

使用 Ctrl + D 输入在Windows上编写EOF(或 Ctrl + Z Enter )。

如果这个软件很容易被人类使用,你可以考虑说“或者一个空行停止”并改为检查。 (但使用STDIN.readlines.each无效 - 仅gets代替:)

答案 1 :(得分:2)

你可以处理一个停止字符串。例如,当ticker是空字符串时:

while(ticker = STDIN.gets.chomp) do
  break if ticker.empty?

  tickers.push(ticker)
end