web-dev-qa-db-fra.com

Comment connaître la version Mac OS X depuis Terminal?

Je sais comment trouver la version Mac OS X à partir de l'interface graphique: Apple Menu (top left) > About This Mac

Existe-t-il une commande Terminal qui me dira la version Mac OS X?

146
Željko Filipin

Vous avez quelques options:

sw_vers -productVersion 

system_profiler SPSoftwareDataType

L'un ou l'autre fera ce dont vous avez besoin et aura un format de sortie analysable (si c'est ce que vous recherchez).

205
delfuego

La commande sw_vers affiche la version.

Pour les anciens Mac OS, vous pouvez trouver des informations utiles dans Wikipedia .

7
EdmundsZ

Si vous ne vous souciez que de la version majeure (10.10, 10.9), vous pouvez le faire.

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

J'utilise ceci dans quelques scripts qui doivent faire des choses différentes s'ils sont exécutés sur 10.8.x, 10.9.x et maintenant 10.10.

4
Joe Block

Si vous souhaitez fractionner le numéro de version de MacOS en fonction du versionnement sémantique de la logique de script, voici un extrait du code que j'utilise.

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

Vous pouvez utiliser ces variables dans la logique de script pour exécuter différentes commandes basées sur la version de macOS. Cela donne un contrôle légèrement plus granulaire jusqu'à la version du correctif ou de la version.

# 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
n8felton