我正在编写一个 Rakefile,它在某些时候会启动 Jetty。Rakefile 应该是平台独立的,所以我可以在我的 windows 和我的 mac 中使用它。要启动 jetty,提供了两个脚本:jetty.sh 和 jetty-cygwin.sh,具体取决于您所在的系统。
在 bash 脚本中,我知道有一个 OSTYPE 可以用来确定我是在 win 下还是在 mac 下,但它在 ruby 的 ENV 下不可用。有没有办法在 Rakefile 中做类似的事情?
非常感谢提前
你试过了ENV['OS']
吗?有了 Windows,我得到"Windows_NT"
了 - 抱歉,我无法在 Mac 上测试它。
还有一个常数RUBY_PLATFORM
(我得到"i386-mingw32"
) - 也许你可以使用它。
另一个想法,如果常量不起作用:
该命令ver
在 windows 中定义并返回 windows 版本。在 Mac 上调用它会发生什么?您可以尝试以下方法:
case %x{ver}
when /Microsoft Windows/
puts "I'm running Windows"
when /Mac/
puts "I'm running on a Mac"
else
puts "Unknown?"
end
用你得到的结果替换/Mac/
(即使它是一条错误消息 - 如果你收到错误,它不是 Windows ;) )。