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

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

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

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

Ответы (4)

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

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

sw_vers -productVersion 

system_profiler SPSoftwareDataType

Either will do what you need, and have a output format that’s parseable (if that’s what you’re want to that you’re).

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

Похожие вопросы

12
7
5
15
9