![Posso obter o nome do animal do OSX no Terminal, em vez de apenas na versão?](https://rvso.com/image/1419592/Posso%20obter%20o%20nome%20do%20animal%20do%20OSX%20no%20Terminal%2C%20em%20vez%20de%20apenas%20na%20vers%C3%A3o%3F.png)
Outras questões discutiram como obter o nome numérico da versão atual do OSX, ou seja, com "sw_vers -productVersion". No entanto, não conheço nenhuma maneira de obter o nome da palavra animal, como Leão, Mavericks, etc. Esta palavra não aparece em Apple/Sobre este Mac.
Responder1
Vou te dar duas alternativas. Ambos têm (algumas) desvantagens, mas funcionam e respondem à sua pergunta.
Primeira solução: crie um script bash que contenha os nomes dos animais. A desvantagem é que você terá que adicionar uma entrada manualmente se uma nova versão aparecer. Mas isso acontece (apenas) uma vez a cada 2 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 as informações que estãoWikipédiae forje um script bash de uma linha que receba o nome do animal. Você precisará de uma versão funcional dogrep,ondulação,html2texto(eu instalei usandopreparar),sw_vers,cabeçaeestranho. Aqui está sua maldade real:
enrolar -shttp://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]' | cabeça -1) | awk '{imprimir $2}'
Uma pequena explicação:
- Obtenha a página da Wikipedia usandoondulação
- Converta-o para ascii usandohtml2texto
- Isole a tabela com a versão do OS X da página da Wikipedia usandogrep
- Entãogrepa tabela com a versão do OS X que você está usando
- Sua versão do OS X vem desw_vers, qual édobro-grepEdecabeçaEdpara isolar o número da versão de 2 dígitos
- Por último, mas não menos importante, é mostrada a segunda coluna da tabela da Wikipédia (esperemos que eles mantenham os nomes dos animais nessa coluna) usandoestranho
Resumindo: isso pode ser feito?Sim. É robusto e livre de manutenção?Não.
Responder2
Enquanto procurava uma solução para isso, me deparei com esta postagem no blog: https://erikberglund.github.io/2016/Apple_Product_Marketing_Name_Query/
Como um rápido resumo da postagem do blog (caso ela desapareça), a Apple tem um serviço da web que você pode consultar para obter o nome comercial do macOS para versões 10.7+. Você pode fornecer o número da versão do macOS para o qual precisa do nome comercial e ele retornará XML com o nome comercial.
curl -s "https://support-sp.apple.com/sp/product?edid=10.12.6"
Devoluções (formatadas 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 desejar obter o nome comercial da versão do macOS que está executando atualmente, você pode executar o one liner
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
over http
para este serviço.
Responder3
Os nomes dos animais são apenas para fins de marketing. Executar o terminal e fazer consultas resultará apenas em referências numéricas, assim como a linguagem é limitada à terminologia baseada em Unix.