Frequentemente, me encontro SSHing em várias máquinas OS X, e seria útil se eu soubesse em qual versão do OS X eu estava enquanto fazia isso. uname -a
não funciona muito bem, pois as versões do kernel do Darwin nem sempre mudam com o restante do sistema.
sw_vers
Minha sugestão é usar sw_vers
. Exemplo de saída a partir de 10.6.4:
> sw_vers
ProductName: Mac OS X
ProductVersion: 10.6.4
BuildVersion: 10F569
A resposta que sugeriu system_profiler | grep 'System Version'
é o que eu tentei usar no passado, mas ele tem 2 problemas.
grep
para 'Número de Série' em 10.6.4 é "Número de Série (sistema): ZNNNNNZNZZZZ", enquanto em 10.4.11 era "Número de Série: ZNNNNZNZZZZZ" - sendo a importância a capacidade de análise do a saída e a parte add "(system)" podem ser problemáticas, a menos que você esteja esperando a alteração.A maneira mais fácil é:
$ sw_vers -productVersion
10.6.4
From 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
Especialmente útil ao redefinir uma senha no modo de usuário único, pois o método varia de acordo com a versão do OS X em execução.
Tente o seguinte:
system_profiler | grep 'System Version'
A resposta de Mike Gray é melhor que isso. Por favor, veja isso
Aqui está um artigo do blog com instruções Como obter a versão do Mac OS X em um script de shell
OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
O system_profiler
pode ser executado como system_profiler SPSoftwareDataType
. Não há necessidade de grep através de uma enorme produção.