Могу ли я получить имя Animal для OSX из Терминала, а не только версию?

Могу ли я получить имя Animal для OSX из Терминала, а не только версию?

Другие вопросы обсуждали, как получить числовое имя текущей версии OSX, т. е. с помощью "sw_vers -productVersion". Однако я не знаю способа получить имя животного, например, Lion, Mavericks и т. д. Это слово не появляется в Apple / Об этом Mac.

решение1

Я дам вам два варианта. Оба имеют (некоторые) недостатки, но они работают и отвечают на ваш вопрос.

Первое решение: создать скрипт bash, содержащий названия животных. Недостаток в том, что вам придется вручную добавлять запись, если появится новая версия. Но это (только) раз в 2 года или около того.

#!/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]}"

Второе решение: попробуйте использовать информацию, которая есть наВикипедияи создайте однострочный скрипт bash, который получает имя животного. Вам понадобится рабочая версиягрэп,завиток,html2text(Я установил его с помощьюзаваривать),sw_vers,головаиawk. Вот ее королевская подлость:

завиток -сhttp://en.wikipedia.org/wiki/OS_X| html2text -nobs -ascii | grep -E '^(Mac_)?OS_X.[0-9]{4}.' | grep -f <( sw_vers | grep "ВерсияПродукта" | grep -o '[0-9].[0-9]' | голова -1 ) | awk '{ print $2 }'

Небольшое пояснение:

  • Получить страницу Википедии с помощьюзавиток
  • Конвертируйте его в ascii с помощьюhtml2text
  • Изолируйте таблицу с версией OS X со страницы Википедии, используягрэп
  • Затемгрэптаблица с версией OS X, которую вы используете
  • Ваша версия OS X получена изsw_vers, которыйдвойной-грэпредиголоваредчтобы выделить 2-значный номер версии
  • И последнее, но не менее важное: показан второй столбец таблицы Википедии (будем надеяться, что в этом столбце сохранят названия животных) с использованиемawk

Короче говоря: возможно ли это сделать?Да. Он надежный и не требует обслуживания?Нет.

решение2

Пока я искал решение этой проблемы, я наткнулся на эту запись в блоге: https://erikberglund.github.io/2016/Apple_Product_Marketing_Name_Query/

В качестве краткого резюме поста в блоге (на случай, если он когда-нибудь исчезнет), у Apple есть веб-сервис, который вы можете запросить для маркетингового имени macOS для версий 10.7+. Вы можете предоставить ему номер версии macOS, для которой вам нужно маркетинговое имя, и он вернет XML с маркетинговым именем.

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

Возвраты (отформатированы для наглядности)

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

Если вы хотите узнать маркетинговое название версии macOS, которую вы используете в данный момент, вы можете выполнить однострочную команду

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

Обратите внимание, что с ноября 2017 года Apple ввела принудительное использование httpsover httpдля этой услуги.

решение3

Названия животных приведены только в маркетинговых целях. Запуск терминала и выполнение запросов приведет только к числовым ссылкам, подобно тому, как язык ограничен терминологией на основе unix.

Связанный контент