0

我正在编写一个 Rakefile,它在某些时候会启动 Jetty。Rakefile 应该是平台独立的,所以我可以在我的 windows 和我的 mac 中使用它。要启动 jetty,提供了两个脚本:jetty.sh 和 jetty-cygwin.sh,具体取决于您所在的系统。

在 bash 脚本中,我知道有一个 OSTYPE 可以用来确定我是在 win 下还是在 mac 下,但它在 ruby​​ 的 ENV 下不可用。有没有办法在 Rakefile 中做类似的事情?

非常感谢提前

4

1 回答 1

0

你试过了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 ;) )。

于 2012-10-18T19:48:34.103 回答