有没有办法在 ruby 中检测操作系统?我正在开发一个需要检测 Mac 与 Windows 的 SketchUp 工具。
问问题
28674 次
4 回答
73
您可以使用os
宝石:
gem install os
接着
require 'os'
OS.linux? #=> true or false
OS.windows? #=> true or false
OS.java? #=> true or false
OS.bsd? #=> true or false
OS.mac? #=> true or false
# and so on.
于 2013-12-14T04:38:36.350 回答
60
这是我最近看到的最好的一个。它来自硒。我认为它是最好的原因是它使用了 rbconfig host_os 字段,该字段具有在 MRI 和 JRuby 上工作的优势。RUBY_PLATFORM 将在 JRuby 上显示“java”,而不管它运行的主机操作系统如何。您将需要稍微调整此方法:
require 'rbconfig'
def os
@os ||= (
host_os = RbConfig::CONFIG['host_os']
case host_os
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
:windows
when /darwin|mac os/
:macosx
when /linux/
:linux
when /solaris|bsd/
:unix
else
raise Error::WebDriverError, "unknown os: #{host_os.inspect}"
end
)
end
于 2012-11-27T14:13:10.627 回答
28
您可以使用
puts RUBY_PLATFORM
irb(main):001:0> RUBY_PLATFORM
=> "i686-linux"
但是@Pete 是对的。
于 2012-08-02T19:07:45.223 回答
3
您可以检查RUBY_PLATFORM常量,但已知在某些情况下这是不可靠的,例如在运行 JRuby 时。其他选项包括在 POSIX 系统上捕获uname -a
命令的输出,或使用检测 gem,例如sys-uname。
于 2012-08-02T19:11:10.790 回答