Pregunta ¿Cómo averiguar la versión de Mac OS X desde la Terminal?


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 diga la versión de Mac OS X?


136


origen




Respuestas:


Tienes pocas opciones:

sw_vers -productVersion 

system_profiler SPSoftwareDataType

O hará lo que necesita y tendrá un formato de salida que se pueda analizar (si eso es lo que busca).


196



sw_vers es todo lo que necesito. ¡Gracias! :) - Željko Filipin
El primero solo le da la versión del sistema operativo (es decir, "10.7.5"). El segundo proporciona mucha información adicional, como 32/64 bits. - Kent
¡Buena esa! Iba a hacer buscar lsb_release O algo por el estilo. Nunca habría detectado esos guiones. :RE - Alastair


El comando sw_vers muestra la versión.

Para sistemas operativos anteriores de Mac, puede encontrar información útil en Wikipedia.


7





Si lo único que te importa es la versión principal (10.10, 10.9), puedes hacer

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

Utilizo esto en un par de scripts que tienen que hacer cosas diferentes si se ejecutan en 10.8.x, 10.9.x y ahora 10.10.


4



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


Si está buscando dividir el número de versión de macOS basado en el control de 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 basados ​​en la versión de macOS. Esto proporciona un control un poco 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

2