In anderen Fragen wurde besprochen, wie man den numerischen Namen der aktuellen OSX-Version erhält, z. B. mit „sw_vers -productVersion“. Ich kenne jedoch keine Möglichkeit, den Tiernamen wie Lion, Mavericks usw. zu erhalten. Dieses Wort erscheint nicht in Apple / Über diesen Mac.
Antwort1
Ich gebe Ihnen zwei Alternativen. Beide haben (einige) Nachteile, aber sie funktionieren und beantworten Ihre Frage.
Erste Lösung: Erstelle ein Bash-Skript, das die Tiernamen enthält. Der Nachteil ist, dass du manuell einen Eintrag hinzufügen musst, wenn eine neue Version erscheint. Aber das ist (nur) etwa alle 2 Jahre einmal der Fall.
#!/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]}"
Zweite Lösung: Versuchen Sie, die Informationen zu verwenden, die aufWikipediaund schmieden Sie ein einzeiliges Bash-Skript, das den Namen des Tieres abruft. Sie benötigen eine funktionierende Version vongrep,Locke,html2text(Ich habe es installiert mitbrauen),sw_vers,KopfUndawk. Hier ist ihre königliche Gemeinheit:
Locke -shttp://en.wikipedia.org/wiki/OS_X| html2text -nobs -ascii | grep -E '^(Mac_)?OS_X.[0-9]{4}.' | grep -f <( sw_vers | grep "ProduktVersion" | grep -o '[0-9].[0-9]' | Kopf -1 ) | awk '{ drucke $2 }'
Eine kleine Erklärung:
- Rufen Sie die Wikipedia-Seite mitLocke
- Konvertieren Sie es in ASCII mithtml2text
- Isolieren Sie die Tabelle mit der OS X-Version von der Wikipedia-Seite mitgrep
- Danngrepdie Tabelle mit der von Ihnen verwendeten OS X-Version
- Ihre OS X-Version stammt vonsw_vers, welches istdoppelt-grepEd.UndKopfEd.um die 2-stellige Versionsnummer zu isolieren
- Zu guter Letzt wird die zweite Spalte der Wikipedia-Tabelle angezeigt (hoffentlich bleiben die Tiernamen in dieser Spalte) mitawk
Lange Rede, kurzer Sinn: Ist das möglich?Ja. Ist es robust und wartungsfrei?NEIN.
Antwort2
Während ich nach einer Lösung dafür suchte, stieß ich auf diesen Blog-Beitrag: https://erikberglund.github.io/2016/Apple_Product_Marketing_Name_Query/
Als kurze Zusammenfassung des Blogbeitrags (falls er jemals verschwindet): Apple verfügt über einen Webdienst, mit dem Sie den Marketingnamen von macOS für die Versionen 10.7 und höher abfragen können. Sie können ihm die macOS-Versionsnummer übermitteln, für die Sie den Marketingnamen benötigen, und er gibt XML mit dem Marketingnamen zurück.
curl -s "https://support-sp.apple.com/sp/product?edid=10.12.6"
Retouren (für Anzeigezwecke formatiert)
<?xml version="1.0" encoding="utf-8" ?>
<root>
<name>CPU Name</name>
<configCode>macOS Sierra</configCode>
<locale>en_US</locale>
</root>
Wenn Sie den Marketingnamen für die Version von macOS erhalten möchten, die Sie derzeit verwenden, können Sie den Einzeiler ausführen
curl -s "https://support-sp.apple.com/sp/product?edid=$(sw_vers -productVersion)" |
xmllint --xpath '/root/configCode/text()' -
Beachten Sie, dass Apple seit November 2017 die Verwendung von https
over http
für diesen Dienst erzwingt.
Antwort3
Die Tiernamen dienen nur Marketingzwecken. Das Ausführen des Terminals und das Ausführen von Abfragen führt nur zu numerischen Referenzen, ähnlich wie die Sprache auf unixbasierte Terminologie beschränkt ist.