Я знаю, як знайти версію Mac OS X від GUI: Apple Menu (top left) > About This Mac
Чи є команда Terminal, яка підкаже мені версію Mac OS X?
Я знаю, як знайти версію Mac OS X від GUI: Apple Menu (top left) > About This Mac
Чи є команда Terminal, яка підкаже мені версію Mac OS X?
Відповіді:
У вас є кілька варіантів:
sw_vers -productVersion
system_profiler SPSoftwareDataType
Або виконуватимете те, що вам потрібно, і матиме вихідний формат, який можна проаналізувати (якщо це ви хочете).
lsb_release
чи щось подібне. Ніколи б не помітив цих сценаріїв. : D
Якщо вам важлива лише основна версія (10.10, 10.9), ви можете це зробити
MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')
Я використовую це в декількох сценаріях, які повинні робити різні речі, якщо працювати на 10.8.x, 10.9.x і зараз 10.10.
sw_vers -productVersion | cut -d '.' -f 1,2
Якщо ви хочете розділити номер версії 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