Posso obter o nome Animal do OSX do Terminal, em vez de apenas a versão?

1

Outras questões discutiram como obter o nome numérico da versão atual do OSX, ou seja, com "sw_vers -productVersion". No entanto, eu não sei de nenhuma maneira de obter o nome da palavra animal, como o leão, Mavericks, etc? Esta palavra não aparece na Apple / Sobre este mac.

    
por AnneTheAgile 16.08.2014 / 03:41

3 respostas

1

Eu vou te dar duas alternativas. Ambos têm (algumas) desvantagens, mas funcionam e respondem à sua pergunta.

Primeira solução: faça um script bash que contenha os nomes dos animais. A desvantagem é que você precisa adicionar manualmente uma entrada se uma nova versão aparecer. Mas isso é (apenas) uma vez a cada dois anos ou mais.

#!/bin/bash
# Check if bahs supports arrays (only recently added)
test[0]='test' || (echo 'Failure: arrays not supported in this version of bash.' && exit 2)

versions=( "1.0" "10.0" "10.1" "10.2" "10.3" "10.4" "10.5" "10.6" "10.7" "10.8" "10.9" "10.10" )
animals=( "Hera" "Cheetah" "Puma" "Jaguar" "Panther" "Tiger" "Leopard" "Snow Leopard" "Lion" "Mountain Lion" "Mavericks" "Yosemite" )
length=${#versions[@]}
thisversion='sw_vers | grep -E "ProductVersion" | grep -o '[0-9]*\.[0-9]*' | head -1'
count=0

while [ "${versions[count]}" != "$thisversion" ] && [ "$count" -le "$length" ]
do
    count=$(( $count + 1 ))
done

echo "Your OS X's version animal name is : ${animals[count]}"

Segunda solução: tente usar a informação que está em Wikipédia e forjar uma linha de base roteiro que recebe o nome do animal. Você precisará de uma versão funcional do grep , curl , html2text (instalei-o usando bebida ), head e awk . Aqui está o seu desagrado real:

curl -s http://en.wikipedia.org/wiki/OS_X | html2text -nobs -ascii | grep -E '^(Mac_)?OS_X.[0-9]{4}.' | grep -f <( sw_vers | grep "ProductVersion" | grep -o '[0-9].[0-9]' | head -1 ) | awk '{ print $2 }'

Uma pequena explicação:

  • Obtenha a página da Wikipédia usando o curl
  • Converta-o em ascii usando html2text
  • Isole a tabela com a versão do OS X da página da Wikipedia usando grep
  • Em seguida, grep a tabela com a versão do OS X você está usando
  • Sua versão do OS X vem de sw_vers , que é duplo- grep ed e cabeçalho ed para isolar o número da versão de 2 dígitos
  • Por último, mas não menos importante, a segunda coluna da tabela da Wikipedia é mostrada (vamos esperar que eles mantenham os nomes dos animais nessa coluna) usando awk

Longa história: pode ser feito? Sim . É robusto e sem manutenção? Não .

    
por 17.08.2014 / 01:37
2

Enquanto procurava uma solução para isso, deparei com este post do blog: link

Como resumo rápido do post do blog (no caso dele desaparecer), a Apple tem um serviço da web que você pode consultar o nome de marketing do macOS para as versões 10.7+. Você pode fornecê-lo com o número da versão do macOS para o qual você precisa do nome de marketing e ele retornará XML com o nome de marketing.

curl -s "https://support-sp.apple.com/sp/product?edid=10.12.6"

Retorna (formatado para fins de exibição)

<?xml version="1.0" encoding="utf-8" ?>
<root>
    <name>CPU Name</name>
    <configCode>macOS Sierra</configCode>
    <locale>en_US</locale>
</root>

Se você deseja obter o nome de marketing para a versão do macOS que você está executando no momento, você pode executar o forro um

curl -s "https://support-sp.apple.com/sp/product?edid=$(sw_vers -productVersion)" |
xmllint --xpath '/root/configCode/text()' -

Observe que, a partir de novembro de 2017, a Apple forçou o uso de https sobre http para este serviço.

    
por 10.08.2017 / 04:17
1

Os nomes dos animais são apenas para fins de marketing. A execução do terminal e a realização de consultas resultarão apenas em referências numéricas, da mesma forma que a linguagem é limitada à terminologia baseada em unix.

    
por 16.08.2014 / 04:29