如何从命令行判断我使用的是哪个版本的 OS X?

Ben*_*ack 69 osx ssh version

我经常发现自己通过 SSH 连接到各种 OS X 机器,如果我能在这样做时知道 OS XI 的版本是什么,那将会很有用。uname -a不太有效,因为 Darwin 内核版本并不总是随系统的其余部分而变化。

Mik*_*ray 79

sw_vers

我的建议是使用sw_vers. 自 10.6.4 起的示例输出:

> sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.6.4
BuildVersion:   10F569
Run Code Online (Sandbox Code Playgroud)

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

  1. 它很慢,因为它会生成机器的完整 system_profiler 转储,收集所有硬件和软件库存信息。
  2. system_profiler 的输出随着时间的推移而改变。例如grep,10.6.4 上“序列号”的输出是“序列号(系统):ZNNNNNZNZZZ”,而在 10.4.11 上它是“序列号:ZNNNNZNZZZZ”——重要的是输出的解析能力和添加“ (system)" 部分可能会出现问题,除非您期待更改。


Ben*_*kes 38

最简单的方法是:

$ sw_vers -productVersion
10.6.4
Run Code Online (Sandbox Code Playgroud)

来自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
Run Code Online (Sandbox Code Playgroud)

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


kby*_*yrd 8

尝试这个:

 system_profiler  | grep 'System Version'
Run Code Online (Sandbox Code Playgroud)

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

  • 迈克·格雷说的话。 (4认同)

Lar*_*ier 6

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

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
Run Code Online (Sandbox Code Playgroud)