条件安装后脚本

时间:2014-01-19 04:44:37

标签: macos installer packagemaker

我正在为OS X 10.6创建一个mpkg - OS X 10.9。我想创建一个安装后脚本来检查操作系统版本并根据结果运行命令

我的伪代码是:

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

如果您能提供任何帮助,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用sw_vers -productVersion获取操作系统版本 - 这将打印类似“10.8.5”的内容。但是,这可能不是直接比较的。当Apple发布Mavericks的继任者时,它可能被编号为10.10,而“10.10”的文本小于“10.6.8”(因为“1”<“6”)。您可以将版本字符串解析为其组件并以数字方式比较元素(请参阅this previous question),但这相当混乱。

使用uname -r检查Darwin版本可能更容易 - 它会打印类似“12.5.0”的内容,它实际上与操作系统版本相对应,但在nontrivial way中<: / p>

  • Darwin 10.x = OS X 10.6.x(和iOS 4)
  • Darwin 11.x = OS X 10.7.approxamatelyx(和iOS 5)
  • Darwin 12.x = OS X 10.8.approxamatelyx
  • Darwin 13.x = OS X 10.9.x(和iOS 6)
  • Darwin 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