2014-01-19 50 views
0

我爲OS X 10.6 - OS X 10.9創建了一個mpkg。我想創建一個安裝後腳本,檢查版本的操作系統,並運行基於結果有條件的安裝後腳本

我的僞代碼是一個命令:

if the OS version is equal to or less than 10.6.8 then 
--command A-- 
else 
--command B-- 
fi 
exit 0 

我會爲你提供任何幫助表示感謝。

+0

可能重複http://stackoverflow.com/questions/394230/detect-the-os-from-a-bash-script – LearnCocos2D

回答

0

您可以通過sw_vers -productVersion獲得操作系統版本 - 這將打印出類似「10.8.5」的內容。但是,這可能不易直接比較。當蘋果發佈小牛的後繼者時,它可能會被編號爲10.10,而「10.10」在文本上小於「10.6.8」(因爲「1」<「6」)。您可以將版本字符串解析爲其組件,並以數字方式比較元素(請參閱this previous question),但這相當混亂。

它可能更容易與uname -r檢查達爾文版本 - 這會打印類似「12.5.0」,這實際上就相當於操作系統的版本,但在nontrivial way

  • 達爾文10 .X = OS X 10.6.x的(和iOS 4)
  • 達爾文11.x的= OS X 10.7.approxamatelyx(和iOS 5)
  • 達爾文的12.x = OS X 10.8.approxamatelyx
  • 達爾文13。 x = OS X 10.9.x(和iOS 6)
  • 達爾文14.x =的iOS 7

......不過這是主要的版本比較其實更容易,因爲你可以看一下第一個號碼,以獲得主要版本:

darwin_version=$(uname -r) 
if ((${darwin_version%%.*} < 11)); then # %%.* removes the first period and everything following that 
    # do OS X 10.6 stuff 
else 
    # do OS X 10.7-10.9 stuff 
fi 
+0

謝謝你的幫助。我需要的只是大版本,比如10.6,我不需要小部分。我會看到這對我如何解決。 – rogerFernand