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 .