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

Come scoprire la versione di Mac OS X dal terminale?

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

Esiste un comando da terminale che mi dica la versione di Mac OS X?

Risposte (4)

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

Avete alcune opzioni:

sw_vers -productVersion 

system_profiler SPSoftwareDataType

Entrambi faranno ciò di cui avete bisogno, e avranno un formato di output che è analizzabile (se è quello che state cercando).

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

Il comando sw_vers mostra la versione.

Per i vecchi Mac OS potete trovare informazioni utili in Wikipedia .

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

Se tutto ciò che vi interessa è la versione maggiore (10.10, 10.9), potete fare

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

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

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

Se state cercando di dividere il numero di versione di macOS basato sul versioning semantico per la logica dello 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

Potete usare 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 versione della patch o della 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