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?
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).
La commande sw_vers
affiche la version.
Pour les anciens Mac OS, vous pouvez trouver des informations utiles dans Wikipedia .
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.
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