Ruby Как определить среду исполнения - PullRequest
7 голосов
/ 29 июня 2011

Мне нужно определить, в какой среде работает мой скрипт ruby, чтобы я мог удалять файлы и очищать каталоги после выполнения.

Я пытался использовать ENV['os'], но я использую Cygwin, и он дал мне Windows_NT. Кто-нибудь знает способ найти текущую среду?

Спасибо

Ответы [ 3 ]

8 голосов
/ 21 февраля 2013

Текущая среда обеспечивается глобальной константой RUBY_PLATFORM

ruby, вызываемый в оболочке cygwin bash (/ usr / bin / ruby):

puts RUBY_PLATFORM
i386-cygwin

ruby, вызываемый из командной строки (c: \ Ruby193 \ bin \ ruby.exe):

puts RUBY_PLATFORM
i386-mingw32

puts ENV['OS'] для обоих приведенных выше возвращений среды: Windows_NT

3 голосов
/ 02 мая 2014

Текущий ОС можно получить из RUBY_PLATFORM

puts RUBY_PLATFORM
X86_64-linux

Однако, когда я использую ENV ['os'] на Linux-машине, Ruby возвращает nil.

1 голос
/ 29 июня 2011

Я использовал гем 'OS', который можно найти здесь: http://rubygems.org/gems/os

Я не пробовал это с cygwin, но я заменил свое собственное использование хэша переменной ENV на него.

...