2011-01-07 44 views
16

我需要檢查Ruby腳本中是否存在STDIN輸入,例如mysql命令可以。如果沒有指向STDIN,那麼腳本不應該試圖讀取STDIN。如何檢查Ruby腳本中的STDIN輸入?

這怎麼能以跨平臺的方式完成?

回答

23

這東西是在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 
相關問題