[apple] 쉘 / 터미널 / bash에서 운영 체제의 “친숙한 이름”을 어떻게 찾을 수 있습니까?

'Mojave'라는 단어가있는 Mac에 관하여

정보 sw_ver를 찾는 데 사용할 수 있음을 알고 있습니다 .

ProductName:    Mac OS X
ProductVersion: 10.14
BuildVersion:   18A353d

… 저는 unameOS에 대한 몇 가지 유형의 정보를 system_profiler SPSoftwareDataType제공 하고 추가 정보를 제공 할 수 있는 것과 같은 다른 것들을 찾을 수 있다는 것을 알고 있지만 위의 이미지에서 “Mojave”와 같은 “친숙한”이름을 찾고 싶습니다.

쉘 / 터미널 / bash / etc를 사용하여“친숙한”이름을 어떻게 찾을 수 있습니까?

지금까지 Google fu가 솔루션을 설정하지 못했습니다. 모든 결과는 위에서 언급 한 명령으로 돌아 오는 것처럼 보이지만 올바른 정보를 제공하는 것은 없습니다.

어딘가에 있어야하는데 … 어떻게 찾을 수 있습니까?



답변

오프라인 방법

이 명령은 찾고있는 것을 찾아야합니다.

awk '/SOFTWARE LICENSE AGREEMENT FOR macOS/' '/System/Library/CoreServices/Setup Assistant.app/Contents/Resources/en.lproj/OSXSoftwareLicense.rtf' | awk -F 'macOS ' '{print $NF}' | awk '{print substr($0, 0, length($0)-1)}'

여기에 있는 답변을 기반으로합니다 . High Sierra에서 작동하도록 테스트되었으며 Mojave에서 작동해야합니다.

온라인 방법

온라인에서이 작업을 수행 할 수도 있습니다 (실제로 질문에 표시된 “Mac 정보”대화 상자가 표시됨).

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

이 명령은 사용자의 poduct 버전으로 Apple 서버를 조회하고 XML 응답에서 OS 이름을 추출합니다. 전체 XML 응답을 보려면 다음 --xpath "//root/configCode/text()"옵션을 생략하십시오 .

curl -s https://support-sp.apple.com/sp/product?edid=$( sw_vers -productVersion ) | xmllint --format  -

응답:

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


답변

set _delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to "."
set os_version to the second item of (the text items of (do shell script "sw_vers -productVersion"))
set AppleScript's text item delimiters to _delim

set osList to { "Puma", "Cheetah", "Jaguar", "Panther", "Tiger", "Leopard", "Snow Leopard",¬
                "Lion", "Mountain Lion", "Mavericks", "Yosemite", "El Capitan", "Sierra", "High Sierra"}

return item (os_version+1) of osList

그게 예입니다.


답변

글쎄, 나는 마침내 해결책을 찾기를 포기했다. 아마도 모하비가 최종 릴리스에 도달 한 후에 하나를 찾을 수 있지만, 이전 버전의 Mac OS X / OS X / macOS에서는 쉽게 사용되지 않을 것입니다.

따라서 Marc Wilson의 아이디어 (위)를 대신하여 모든 버전 번호와 “친숙한 이름” 의 전체 목록을 출력 하거나 특정 이름을 검색 할 수있는 쉘 스크립트를 만들었습니다. “Yosemite”라는 버전을 알고 싶다면

내 스크립트는 https://github.com/tjluoma/macosxnames/blob/master/macosxnames.sh 에서 찾을 수 있습니다.

외부 스크립트가 필요없는 솔루션을 찾을 수 있도록 질문을 열어 두겠습니다.


답변