Ruby 从作为参数给定的文件中读取
Ruby gets reading from file given as argument
我有一个 ruby 脚本,它是 运行 和 ruby myscr.rb ./text_file.txt
,它使用 gets
读取输入并将其写入文件,但是 gets
似乎从文件中读取而不是终端输入。如何强制它以与 gets
?
相同的方式从终端获取输入
Kernel#gets 是故意这样实现的(尽管我在 Ruby 工作了很多年,但它仍然让我感到惊讶):
Returns (and assigns to $_) the next line from the list of files in ARGV (or $*), or from standard input if no files are present on the command line.
要仅从终端读取通过标准输入流进入脚本的输入,您可以直接在 $stdin
:
上使用 gets
方法
File.open(ARGV.first, "w") do |f|
f.puts($stdin.gets)
end
我有一个 ruby 脚本,它是 运行 和 ruby myscr.rb ./text_file.txt
,它使用 gets
读取输入并将其写入文件,但是 gets
似乎从文件中读取而不是终端输入。如何强制它以与 gets
?
Kernel#gets 是故意这样实现的(尽管我在 Ruby 工作了很多年,但它仍然让我感到惊讶):
Returns (and assigns to $_) the next line from the list of files in ARGV (or $*), or from standard input if no files are present on the command line.
要仅从终端读取通过标准输入流进入脚本的输入,您可以直接在 $stdin
:
gets
方法
File.open(ARGV.first, "w") do |f|
f.puts($stdin.gets)
end