Come scoprire la versione di Mac OS X dal Terminale?


150

So come trovare la versione di Mac OS X dalla GUI: Apple Menu (top left) > About This Mac

Esiste un comando Terminal che mi dirà la versione di Mac OS X?

Risposte:


211

Hai alcune opzioni:

sw_vers -productVersion 

system_profiler SPSoftwareDataType

O farà ciò di cui hai bisogno e avrà un formato di output che è analizzabile (se è quello che stai cercando).


3
Il primo fornisce solo la versione del sistema operativo (ovvero "10.7.5"). Il secondo fornisce molte informazioni aggiuntive come 32/64-bit.
Kent,

1
Ben fatto! Stavo per cercare lsb_releasequalcosa o qualcosa del genere. Non avrei mai individuato quegli script. : D
Alastair,

7

Il comando sw_versmostra la versione.

Per i vecchi Mac OS puoi trovare informazioni utili su Wikipedia .


4

Se tutto ciò che ti interessa è la versione principale (10.10, 10.9), puoi farlo

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

Lo uso in un paio di script che devono fare cose diverse se eseguito su 10.8.x, 10.9.x e ora 10.10.


3
sw_vers -productVersion | cut -d '.' -f 1,2
Più

2

Se stai cercando di dividere il numero di versione di macOS in base al controllo delle versioni semantico per la logica degli script, ecco un piccolo frammento di codice che 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

È possibile utilizzare queste variabili nella logica dello script per eseguire diversi comandi in base alla versione di macOS. Questo dà un controllo leggermente più granulare fino alla patch o alla versione build.

# 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.