Вопрос Как узнать версию Mac OS X от терминала?


Я знаю, как найти версию Mac OS X из графического интерфейса: Apple Menu (top left) > About This Mac

Есть ли команда терминала, которая скажет мне версию Mac OS X?


136
2017-11-25 12:48


происхождения




ответы:


У вас есть несколько вариантов:

sw_vers -productVersion 

system_profiler SPSoftwareDataType

Любой из них будет делать то, что вам нужно, и будет иметь выходной формат, который обрабатывается (если это то, что вам нужно).


196
2017-11-25 14:13



sw_vers - это все, что мне нужно. Благодаря! :) - Željko Filipin
Первый дает вам только версию ОС (т. Е. «10.7.5»). Вторая дает вам дополнительную информацию, такую ​​как 32/64-бит. - Kent
Хороший! Я собирался искать lsb_release Или что-то вдоль этих линий. Никогда бы не заметили эти сценарии. : D - Alastair


Команда sw_vers показывает версию.

Для старых Mac OS вы можете найти полезную информацию в Википедия,


7
2018-02-16 21:28





Если вас интересует только основная версия (10.10, 10.9), вы можете сделать

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

Я использую это в нескольких сценариях, которые должны делать разные вещи, если они запущены на 10.8.x, 10.9.x и теперь 10.10.


4
2017-10-20 19:59



Simpler: sw_vers -productVersion | cut -d '.' -f 1,2 - waldyrious


Если вы хотите разделить номер версии 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

2
2017-10-14 02:07