【问题标题】:Detecting stdin content in Ruby检测 Ruby 中的标准输入内容
【发布时间】:2011-08-18 22:27:40
【问题描述】:

我想知道是否有人试图在标准输入上提供 ruby​​ 程序内容。我不希望 ruby​​ 退回到允许交互式输入。我该怎么做?

# When called in bash like this, I want 'cat.rb' to exit immediately:
ruby cat.rb

# When called in bash like this, I want to see the word 'hello':
echo hello | ruby cat.rb

如果我只是让cat.rb 包含puts gets,那么第一个示例将阻塞,等待交互式标准输入上的 EOF。我不想修改调用命令,但希望同时支持这两种行为。

【问题讨论】:

    标签: ruby


    【解决方案1】:

    $stdin.tty?

    ruby cat.rb
    # $stdin.tty? -> true
    
    echo hello | ruby cat.rb
    # $stdin.tty? -> false
    

    【讨论】:

    猜你喜欢
    • 2011-01-26
    • 2016-08-08
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2020-06-11
    • 2014-11-22
    相关资源
    最近更新 更多