Sé cómo encontrar la versión de Mac OS X desde la GUI: Apple Menu (top left) > About This Mac
¿Hay un comando de Terminal que me dirá la versión de Mac OS X?
Sé cómo encontrar la versión de Mac OS X desde la GUI: Apple Menu (top left) > About This Mac
¿Hay un comando de Terminal que me dirá la versión de Mac OS X?
Respuestas:
Tienes pocas opciones:
sw_vers -productVersion
system_profiler SPSoftwareDataType
Cualquiera de los dos hará lo que necesite y tendrá un formato de salida que se pueda analizar (si eso es lo que busca).
lsb_release
o algo por el estilo. Nunca habría visto esos guiones. : D
Si lo único que le importa es la versión principal (10.10, 10.9), puede hacer
MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')
Lo uso en un par de scripts que tienen que hacer cosas diferentes si se ejecutan en 10.8.x, 10.9.xy ahora 10.10.
sw_vers -productVersion | cut -d '.' -f 1,2
Si está buscando dividir el número de versión de macOS basado en versiones semánticas para la lógica del script, aquí hay un pequeño fragmento de código que 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
Puede usar estas variables en la lógica del script para ejecutar diferentes comandos según la versión de macOS. Esto proporciona un control ligeramente más granular hasta el parche o la versión de compilación.
# 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