it-swarm.it

Come posso sapere su quale versione di OS X sono attivo dalla riga di comando?

Mi trovo spesso a utilizzare SSHing su varie macchine OS X e sarebbe utile se potessi dire su quale versione di OS X ero mentre lo faccio. uname -a non funziona del tutto, poiché le versioni del kernel Darwin non cambiano sempre con il resto del sistema.

69
Benjamin Pollack

sw_vers

Il mio suggerimento è di utilizzare sw_vers. Esempio di output al 10.6.4:

> sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.6.4
BuildVersion:   10F569

La risposta che ha suggerito system_profiler | grep 'System Version' è quello che ho cercato di utilizzare in passato, ma presenta 2 problemi.

  1. È lento poiché genera un dump completo system_profiler della macchina, raccogliendo tutte le informazioni di inventario hardware e software.
  2. L'output di system_profiler è cambiato nel tempo. per esempio. l'output di grep per 'Numero di serie' su 10.6.4 è "Numero di serie (sistema): ZNNNNZNZZZ", mentre su 10.4.11 era "Numero di serie: ZNNNZZZZZZ" - l'importanza è l'abilità di analisi del l'output e il pezzo "(sistema)" possono essere problematici a meno che non ci si aspetti il ​​cambiamento.
79
Mike Gray

Il modo più semplice è:

$ sw_vers -productVersion
10.6.4

Da http://tinyapps.org/blog/mac/201008140700_os_x_version_terminal.html :

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.6.4
BuildVersion:  
10F569
$ sw_vers -productVersion
10.6.4

Particolarmente utile quando si reimposta una password in modalità utente singolo, poiché il metodo varia in base alla versione di OS X in esecuzione.

38
Benjamin Oakes

Prova questo:

 system_profiler  | grep 'System Version'

La risposta di Mike Gray è migliore di questa. Vedi

8
kbyrd

Ecco un articolo del blog con le istruzioni Come ottenere la versione di Mac OS X in uno script Shell

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
6
Larry Smithmier

Il system_profiler può essere eseguito come system_profiler SPSoftwareDataType. Non c'è bisogno di grep attraverso un enorme output.

3
user242114