我可以從終端機取得 OSX 的動物名稱,而不僅僅是版本嗎?

我可以從終端機取得 OSX 的動物名稱,而不僅僅是版本嗎?

其他問題則討論如何取得目前 OSX 版本的數位名稱,即使用「sw_vers -productVersion」。但是,我知道沒有辦法獲得動物詞名稱,例如獅子、小牛等?這個字沒有出現在 Apple / About this mac 中。

答案1

我會給你兩個選擇。兩者都有(一些)缺點,但它們有效並回答了您的問題。

第一個解決方案:製作一個包含動物名稱的 bash 腳本。缺點是如果出現新版本,您必須手動新增條目。但這大約每兩年一次。

#!/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 腳本來取得該動物的名字。你需要一個工作版本grep,捲曲,html2text(我安裝它使用釀造),sw_vers,awk。這是她皇家的骯髒:

捲曲-shttp://en.wikipedia.org/wiki/OS_X| html2text -nobs -ascii | html2text -nobs -ascii | grep -E '^(Mac_)?OS_X.[0-9]{4}。' | grep -f <( sw_vers | grep "產品版本" | grep -o '[0-9].[0-9]' |頭-1) | awk '{ 印出 $2 }'

一點解釋:

  • 使用取得維基百科頁面捲曲
  • 使用以下命令將其轉換為 asciihtml2text
  • 使用下列命令將具有 OS X 版本的表與 Wikipedia 頁面隔離grep
  • 然後grep包含您正在使用的 OS X 版本的表格
  • 您的 OS X 版本來自sw_vers,即雙倍的-grep編輯編輯隔離 2 位元版本號
  • 最後但並非最不重要的一點是,顯示了維基百科表格的第二列(讓我們希望他們將動物名稱保留在該列中)使用awk

長話短說:能做到嗎?是的。它是否堅固且免維護?

答案2

當我尋找解決方案時,我發現了這篇部落格文章: https://erikberglund.github.io/2016/Apple_Product_Marketing_Name_Query/

作為部落格文章的快速摘要(以防它消失),Apple 有一項 Web 服務,您可以查詢 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 版本的行銷名稱,您可以執行 oneliner

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

請注意,自 2017 年 11 月起,Apple 已強制在該服務中使用httpsover 。http

答案3

動物名稱僅用於行銷目的。執行終端並進行查詢只會產生數字引用,就像該語言僅限於基於 UNIX 的術語一樣。

相關內容