1

そのため、curl を使用して次のコードをダウンロードして実行すると、nil が生成され、何もプロンプトが表示されません。

str=gets
unless str.nil?
  puts str
else
  puts "gets produced nil"
end

使用中のコマンド (自分で試すことができます)

curl https://raw.github.com/gist/3077534/06ea1c27f7bed38408d2662671f29ea758e2e54b/gets_test.rb | ruby

これを行うためのより良い/より一般的な方法はありますか?

4

1 に答える 1

2

これはあなたのために働くかもしれません:

tty = STDIN.reopen('/dev/tty')

tty.each_line do |line|
  break if line == "\n"
  puts line
end

tty.close

それは私のためになります:

$ curl https://raw.github.com/gist/3078191 | ruby
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   106  100   106    0     0     84      0  0:00:01  0:00:01 --:--:--   153
foo
foo
foobar
foobar
now pressing enter ...
now pressing enter ...
 
于 2012-07-09T17:09:04.910 に答える