有没有一种方法可以在Ruby中检测操作系统?我正在开发一个SketchUp工具,需要检测Mac和Windows。
有没有一种方法可以在Ruby中检测操作系统?我正在开发一个SketchUp工具,需要检测Mac和Windows。
os
的宝石(gem):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.
这是我最近见过的最好的一个。它来自selenium。我认为它之所以是最好的,是因为它使用了rbconfig host_os字段,这具有在MRI和JRuby上工作的优点。无论JRuby运行在哪个主机操作系统上,RUBY_PLATFORM都将显示“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
puts RUBY_PLATFORM
。irb(main):001:0> RUBY_PLATFORM
=> "i686-linux"
但是@Pete是正确的。
"java"
。 - bfontaineuname -a
命令的输出,或使用诸如 sys-uname 的检测 gem。