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

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

Sé cómo encontrar la versión de Mac OS X desde la GUI: Apple Menu (top left) > About This Mac

¿Hay algún comando de Terminal que me diga la versión de Mac OS X?

Respuestas (4)

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

Tienes varias opciones:

sw_vers -productVersion 

system_profiler SPSoftwareDataType

Cualquiera de ellas hará lo que necesitas, y tendrá un formato de salida que es parseable (si es lo que buscas).

7
7
7
2014-02-16 21:28:28 +0000

El comando sw_vers muestra la versión.

Para los Mac OS más antiguos puede encontrar información útil en Wikipedia .

4
4
4
2014-10-20 19:59:27 +0000

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

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

Yo uso 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.

2
2
2
2017-10-14 02:07:02 +0000

Si quieres dividir el número de versión de macOS basado en el versionado semántico para la lógica de los scripts, aquí tienes un pequeño fragmento de código que utilizo

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

Puedes utilizar estas variables en la lógica de los scripts para ejecutar diferentes comandos basados en la versión de macOS. Esto da un control ligeramente más granular hasta el parche o la versión de construcció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