2009-11-25 12:48:57 +0000 2009-11-25 12:48:57 +0000
155
155

如何从终端查找Mac OS X版本?

我知道如何从GUI中找到Mac OS X版本。Apple Menu (top left) > About This Mac

有没有一个终端命令可以告诉我Mac OS X的版本?

答案 (4)

216
216
216
2009-11-25 14:13:02 +0000

你有几个选择。

sw_vers -productVersion 

system_profiler SPSoftwareDataType

无论哪种方式都能满足你的需求,而且输出格式是可解析的(如果你想要的话)。

7
7
7
2014-02-16 21:28:28 +0000

命令sw_vers显示版本。

对于旧的Mac OS,你可以在维基百科中找到有用的信息。

4
4
4
2014-10-20 19:59:27 +0000

如果你只关心主要的版本(10.10, 10.9),你可以做

MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')

我在几个脚本中使用这个,如果在10.8.x, 10.9.x和现在的10.10上运行,必须做不同的事情。

2
2
2
2017-10-14 02:07:02 +0000

如果你想根据语义版本划分macOS的版本号来进行脚本逻辑,这里有一小段我使用的代码

product_version=$(sw_vers -productVersion)
os_vers=( ${product_version//./ } )
os_vers_major="${os_vers[0]}"
os_vers_minor="${os_vers[1]}"
os_vers_patch="${os_vers[2]}"
os_vers_build=$(sw_vers -buildVersion)

# Sample semver output
echo "${os_vers_major}.${os_vers_minor}.${os_vers_patch}+${os_vers_build}"
# 10.12.6+16G29

你可以在脚本逻辑中使用这些变量来根据macOS的版本运行不同的命令。这可以提供更精细的控制,直到补丁或构建版本。

# Sample bash code
if [[${os_vers_minor} -ge 11]]; then
    DMG_FORMAT=ULFO
elif [[${os_vers_minor} -ge 4]]; then
    DMG_FORMAT=UDBZ
else
    DMG_FORMAT=UDZO
fi