¿Puedo obtener el nombre Animal de OSX desde la Terminal, en lugar de solo la Versión?

¿Puedo obtener el nombre Animal de OSX desde la Terminal, en lugar de solo la Versión?

Otras preguntas han discutido cómo obtener el nombre numérico de la versión actual de OSX, es decir, con "sw_vers -productVersion". Sin embargo, no conozco ninguna forma de obtener el nombre de la palabra animal, como León, Mavericks, etc. Esta palabra no aparece en Apple/Acerca de este mac.

Respuesta1

Te daré dos alternativas. Ambos tienen (algunos) inconvenientes, pero funcionan y responden a su pregunta.

Primera solución: crear un script bash que contenga los nombres de los animales. La desventaja es que tienes que agregar manualmente una entrada si aparece una nueva versión. Pero eso es (sólo) una vez cada 2 años aproximadamente.

#!/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 solución: intente utilizar la información que se encuentra enWikipediay forjar un script bash de una sola línea que obtenga el nombre del animal. Necesitará una versión funcional degrep,rizo,html2texto(Lo instalé usandoelaborar cerveza),sw_vers,cabezayawk. Aquí está su maldad real:

rizo -shttp://en.wikipedia.org/wiki/OS_X| html2text-nobs-ascii | grep -E '^(Mac_)?OS_X.[0-9]{4}.' | grep -f <( sw_vers | grep "VersiónProducto" | grep -o '[0-9].[0-9]' | cabeza -1 ) | awk '{ imprimir $2 }'

Una pequeña explicación:

  • Obtenga la página de Wikipedia usandorizo
  • Conviértelo a ascii usandohtml2texto
  • Aísle la tabla con la versión de OS X de la página de Wikipedia usandogrep
  • Entoncesgrepla tabla con la versión de OS X que estás usando
  • Su versión de OS X proviene desw_vers, cual esdoble-grepedycabezaedpara aislar el número de versión de 2 dígitos
  • Por último, pero no menos importante, se muestra la segunda columna de la tabla de Wikipedia (esperemos que mantengan los nombres de los animales en esa columna) usandoawk

En pocas palabras: ¿se puede hacer?. ¿Es robusto y no requiere mantenimiento?No.

Respuesta2

Mientras buscaba una solución a esto, encontré esta publicación de blog: https://erikberglund.github.io/2016/Apple_Product_Marketing_Name_Query/

Como resumen rápido de la publicación del blog (en caso de que alguna vez desaparezca), Apple tiene un servicio web donde puede consultar el nombre comercial de macOS para las versiones 10.7+. Puede proporcionarle el número de versión de macOS para el que necesita el nombre comercial y devolverá XML con el nombre comercial.

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

Devoluciones (formateadas para fines de visualización)

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

Si desea obtener el nombre comercial de la versión de macOS que está ejecutando actualmente, puede ejecutar la línea única

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

Tenga en cuenta que a partir de noviembre de 2017, Apple obligó al uso de httpsover httppara este servicio.

Respuesta3

Los nombres de los animales son sólo para fines de marketing. Ejecutar la terminal y realizar consultas solo dará como resultado referencias numéricas, al igual que el lenguaje se limita a la terminología basada en Unix.

información relacionada