Подтвердить что ты не робот

Как вы можете проверить вход STDIN в Ruby script?

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

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

4b9b3361

Ответ 1

Это то, что сделано в 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