如何在Ruby脚本中检查STDIN输入?
我需要检查Ruby脚本中是否存在STDIN输入,就像如何在Ruby脚本中检查STDIN输入?,ruby,Ruby,我需要检查Ruby脚本中是否存在STDIN输入,就像mysql命令一样。如果没有任何内容指向STDIN,则脚本不应尝试读取STDIN 如何以跨平台的方式做到这一点?这是Linux中经常做的事情: #!/usr/bin/env ruby str = (STDIN.tty?) ? 'not reading from stdin' : $stdin.read puts str >> $ ruby test.rb >> not reading from stdin >
mysql
命令一样。如果没有任何内容指向STDIN,则脚本不应尝试读取STDIN
如何以跨平台的方式做到这一点?这是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
使用
STDIN
和$STDIN
的具体原因是什么?