我想用ARGF
这样。
# file.rb
if ARGF.???
puts ARGF.read
else
puts "no redirect."
end
$ echo "Hello world" | ruby file.rb
Hello world
$ ruby file.rb
no redirect.
我无需等待用户输入即可完成操作。我尝试过
eof?
或closed?
没有帮助。有任何想法吗?注意我被误解了
ARGF
。请参阅下面的评论。 最佳答案
基本上,您将检查#filename
。一种方法是:
if ARGF.filename != "-"
puts ARGF.read
else
puts "no redirect."
end
这是更完整的形式:
#!/usr/bin/env ruby
if ARGF.filename != "-" or (not STDIN.tty? and not STDIN.closed?)
puts ARGF.read
else
puts "No redirect."
end
其他:
#!/usr/bin/env ruby
if not STDIN.tty? and not STDIN.closed?
puts STDIN.read
else
puts "No redirect."
end
关于ruby - 如何在Ruby中检查ARGF是否为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25358253/