Как проверить вход STDIN в скрипте Ruby? - PullRequest
20 голосов
/ 07 января 2011

Мне нужно проверить наличие ввода STDIN в скрипте Ruby, как это может сделать команда mysql.Если ничего не направлено на STDIN, то скрипт не должен пытаться прочитать STDIN.

Как это можно сделать кроссплатформенным способом?

1 Ответ

29 голосов
/ 07 января 2011

Это то, что часто делается в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...