2011-06-29 78 views
7

我需要確定我的ruby腳本正在運行的環境,以便在執行後刪除文件和清理目錄。Ruby如何確定執行環境

我試過使用ENV['os'],但我使用cygwin,它給了我Windows_NT,有沒有人知道一種方式來找到當前的環境?

感謝

回答

1

我用寶石「OS」,這可以在這裏找到:​​

我沒有使用Cygwin嘗試過,但我沒有替代我自己用的變量ENV散列用它。

+0

此問題也解決您的問題。 http://stackoverflow.com/questions/170956/ruby-how-can-i-find-out-on-which-system-my-program-is-running – Ryanmt

+0

謝謝你,虐待寶石'os' –

+0

os寶石精美地工作。我們可以做一些事情,比如'OS :: windows?''OS :: linux?' – rpattabi

7

當前環境是由提供的全局常數RUBY_PLATFORM

紅寶石調用在cygwin的bash外殼(在/ usr /斌/紅寶石):

puts RUBY_PLATFORM 
i386-cygwin 

紅寶石調用在命令提示(C: \ Ruby193 \ BIN \ ruby​​.exe):

puts RUBY_PLATFORM 
i386-mingw32 

puts ENV['OS']對於上述兩種環境回報:Windows_NT

3

當前OS可以從RUBY_PLATFORM

puts RUBY_PLATFORM 
X86_64-linux 

然而來獲得,當我使用ENV [ 'OS'] Linux機器上,紅寶石返回nil。