在Ruby脚本中如何检查STDIN输入?

21

我需要在 Ruby 脚本中检查 STDIN 输入是否存在,就像 mysql 命令一样。如果没有任何输入被定向到 STDIN,则脚本不应尝试读取 STDIN。

如何以跨平台的方式实现这一点?

1个回答

33

这是在Linux中经常做的事情:

#!/usr/bin/env ruby

str = (STDIN.tty?) ? 'not reading from stdin' : $stdin.read
puts str

>> $ ruby test.rb 
>> not reading from stdin
>> $ echo "reading from stdin" | ruby test.rb 
>> reading from stdin

3
为什么要同时使用 STDIN$stdin - Danny Kopping

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接