2011-01-07 16 views
16

Muszę sprawdzić obecność wejścia STDIN w skrypcie Ruby, tak jak w przypadku komendy mysql. Jeśli nic nie jest kierowane do STDIN, skrypt nie powinien próbować czytać STDIN.Jak sprawdzić wejście STDIN w skrypcie Ruby?

Jak to zrobić w sposób międzyplatformowy?

Odpowiedz

23

To jest coś, co się robi w Linuksie wiele:

#!/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 
Powiązane problemy