Eu sei como encontrar a versão do Mac OS X na GUI: Apple Menu (top left) > About This Mac
Existe um comando Terminal que me diga a versão do Mac OS X?
Eu sei como encontrar a versão do Mac OS X na GUI: Apple Menu (top left) > About This Mac
Existe um comando Terminal que me diga a versão do Mac OS X?
Respostas:
Você tem poucas opções:
sw_vers -productVersion
system_profiler SPSoftwareDataType
Qualquer um deles fará o que você precisa e terá um formato de saída que pode ser analisado (se é isso que você procura).
lsb_release
ou algo nesse sentido. Nunca teria visto esses scripts. : D
Se tudo o que importa é a versão principal (10.10, 10.9), você pode fazer
MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')
Eu uso isso em alguns scripts que precisam fazer coisas diferentes se executados em 10.8.x, 10.9.xe agora 10.10.
sw_vers -productVersion | cut -d '.' -f 1,2
Se você deseja dividir o número da versão do macOS com base no controle de versão semântico da lógica de script, aqui está um pequeno trecho de código que eu uso
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
Você pode usar essas variáveis na lógica de script para executar comandos diferentes com base na versão do macOS. Isso fornece um controle um pouco mais granular até a versão de patch ou compilação.
# 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