다른 질문에서는 현재 OSX 버전의 숫자 이름을 얻는 방법, 즉 "sw_vers -productVersion"을 사용하는 방법에 대해 논의했습니다. 그런데 Lion, Mavericks 등과 같은 동물 단어 이름을 얻을 수 있는 방법이 없는 걸까요? 이 단어는 Apple/About this 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 스크립트를 위조하세요. 다음의 작업 버전이 필요합니다.grep,곱슬 곱슬하다,HTML2텍스트(저는 다음을 사용하여 설치했습니다.꾸미다),sw_vers,머리그리고앗. 그녀의 왕실 불쾌감은 다음과 같습니다.
컬 -shttp://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 '{ $2 인쇄 }'
약간의 설명:
- 다음을 사용하여 Wikipedia 페이지를 가져옵니다.곱슬 곱슬하다
- 다음을 사용하여 ASCII로 변환하십시오.HTML2텍스트
- 다음을 사용하여 Wikipedia 페이지에서 OS X 버전의 테이블을 분리합니다.grep
- 그 다음에grep사용 중인 OS X 버전이 표시된 표
- OS X 버전은 다음에서 제공됩니다.sw_vers, 이는더블-grep에드그리고머리에드두 자리 버전 번호를 분리하려면
- 마지막으로 Wikipedia 테이블의 두 번째 열이 표시됩니다(해당 열에 동물 이름이 유지되기를 바랍니다).앗
간단히 말해서: 할 수 있나요?예. 견고하고 유지보수가 필요 없나요?아니요.
답변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년 11월부터 Apple은 이 서비스에 대해 https
over 사용을 강제했습니다.http
답변3
동물 이름은 마케팅 목적으로만 사용됩니다. 터미널을 실행하고 쿼리를 수행하면 언어가 유닉스 기반 용어로 제한되는 것처럼 숫자 참조만 발생합니다.