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

Hoe kan ik de versie van Mac OS X achterhalen via Terminal?

Ik weet hoe ik Mac OS X versie kan vinden via de GUI: Apple Menu (top left) > About This Mac

Is er een Terminal commando dat me Mac OS X versie zal vertellen?

Antwoorden (4)

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

Je hebt een paar opties:

sw_vers -productVersion 

system_profiler SPSoftwareDataType

Beide doen wat je nodig hebt, en hebben een uitvoerformaat dat parseerbaar is (als dat is wat je zoekt).

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

Het commando sw_vers toont de versie.

Voor oudere Mac OS'en kunt u nuttige informatie vinden in Wikipedia .

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

Als het je alleen om de hoofdversie gaat (10.10, 10.9), dan kun je

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

Ik gebruik dit in een paar scripts die verschillende dingen moeten doen als ze op 10.8.x, 10.9.x en nu 10.10 draaien.

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

Als je het macOS versienummer wilt splitsen op basis van semantische versiebeheer voor script logica, dan is hier een klein stukje code dat ik gebruik

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

Je kunt deze variabelen gebruiken in script logica om verschillende commando’s uit te voeren op basis van de versie van macOS. Dit geeft iets meer granulaire controle tot aan de patch of build versie.

# 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