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.
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.
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.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.
Essaye ça:
system_profiler | grep 'System Version'
La réponse de Mike Gray est meilleure que cela. Veuillez voir cela
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"
Le system_profiler
peut être exécuté en tant que system_profiler SPSoftwareDataType
. Pas besoin de passer à travers une énorme sortie.