it-swarm.cn

如何从命令行知道我使用的OS X版本?

我经常发现自己正在SSH进入各种OS X机器,如果我能知道执行此操作时所用的OS X版本,这将非常有用。 uname -a不太有效,因为Darwin内核版本并不总是随系统的其余部分而变化。

69
Benjamin Pollack

sw_vers

我的建议是使用sw_vers。从10.6.4开始的示例输出:

> sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.6.4
BuildVersion:   10F569

提出system_profiler | grep 'System Version'的答案是我过去尝试使用的答案,但是有两个问题。

  1. 这很慢,因为它会生成计算机的完整system_profiler转储,并收集所有硬件和软件清单信息。
  2. System_profiler的输出随时间变化。例如10.6.4上“序列号”的grep的输出是“序列号(系统):ZNNNNNZNZZZ”,而在10.4.11上,它的输出是“序列号:ZNNNNZNZZZZ”-重要性是除非您期望更改,否则输出和添加的“(系统)”部分可能会出现问题。
79
Mike Gray

最简单的方法是:

$ sw_vers -productVersion
10.6.4

http://tinyapps.org/blog/mac/201008140700_os_x_version_terminal.html

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.6.4
BuildVersion:  
10F569
$ sw_vers -productVersion
10.6.4

在单用户模式下重置密码时特别方便,因为该方法根据运行的OS X版本而有所不同。

38
Benjamin Oakes

尝试这个:

 system_profiler  | grep 'System Version'

迈克·格雷的答案比这更好。请看得出

8
kbyrd

这是一篇博客文章,其中包含说明 如何在Shell脚本中获取Mac OS X版本

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
6
Larry Smithmier

system_profiler可以作为system_profiler SPSoftwareDataType。无需通过大量输出进行grep。

3
user242114