it-swarm-ru.tech

Как я могу узнать, какая версия OS X у меня из командной строки?

Я часто нахожусь в SSHing на различных машинах OS X, и было бы полезно, если бы я мог сказать, на какой версии OS X я работал, когда делал это. uname -a не совсем работает, поскольку версии ядра Дарвина не всегда меняются вместе с остальной системой.

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' это то, что я пытался использовать в прошлом, но у него есть 2 проблемы.

  1. Это медленный процесс, поскольку он генерирует полный дамп system_profiler компьютера, собирая всю информацию об аппаратном и программном обеспечении.
  2. Вывод system_profiler изменился со временем. например выходной параметр grep для 'Serial Number' на 10.6.4 - это "Serial Number (system): ZNNNNNZNZZZ", тогда как 10.4.11 это был "Serial Number: ZNNNNZNZZZZ" - важность, являющаяся возможностью синтаксического анализа Вывод и добавление "(system)" могут быть проблематичными, если вы не ожидаете изменений.
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

Вот статья в блоге с инструкциями Как получить версию 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. Нет необходимости просматривать огромный вывод.

3
user242114