web-dev-qa-db-fra.com

Comment savoir sur quelle version d'OS X je suis depuis la ligne de commande?

Je me retrouve souvent SSHing dans diverses machines OS X, et il serait utile de pouvoir dire sur quelle version d'OS X j'étais sur le moment. uname -a ne fonctionne pas vraiment, car les versions du noyau Darwin ne changent pas toujours avec le reste du système.

69
Benjamin Pollack

sw_vers

Ma suggestion est d'utiliser sw_vers. Exemple de sortie à partir de 10.6.4:

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

La réponse qui suggérait system_profiler | grep 'System Version' est ce que j'ai essayé d'utiliser dans le passé, mais il a 2 problèmes.

  1. Il est lent car il génère un vidage système complet de la machine, rassemblant toutes les informations d'inventaire matériel et logiciel.
  2. La sortie de system_profiler a changé au fil du temps. par exemple. la sortie de grep pour 'Numéro de série' sur 10.6.4 est "Numéro de série (système): ZNNNNNZNZZZ", alors que sur 10.4.11 c'était "Numéro de série: ZNNNNZNZZZZ" - l'importance étant la capacité d'analyse de la la sortie et l'ajout de "(système)" peuvent être problématiques à moins que vous n'attendiez le changement.
79
Mike Gray

Le moyen le plus simple est:

$ sw_vers -productVersion
10.6.4

De 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

Particulièrement pratique lors de la réinitialisation d'un mot de passe en mode mono-utilisateur, car la méthode varie en fonction de la version d'OS X en cours d'exécution.

38
Benjamin Oakes

Essaye ça:

 system_profiler  | grep 'System Version'

La réponse de Mike Gray est meilleure que cela. Veuillez voir cela

8
kbyrd

Voici un article de blog avec des instructions Comment obtenir la version Mac OS X dans un script shell

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

Le system_profiler peut être exécuté en tant que system_profiler SPSoftwareDataType. Pas besoin de passer à travers une énorme sortie.

3
user242114