Получить кодовое имя OSX из командной строки

Есть ли способ получить кодовое имя OSX (Ie Yosemite, El Capitan и т. Д.) Из командной строки? Я не ищу информацию о версии (например,

sw_vers -productVersion 

), который дает 10.10 и т.д. Спасибо!

3 Solutions collect form web for “Получить кодовое имя OSX из командной строки”

Я уверен, что должен быть более простой и надежный способ, но, по крайней мере, вы можете полностью исключить этот канал, используя grep с -o (только для распечаток) и -E (расширенные регулярные выражения):

 grep -oE 'SOFTWARE LICENSE AGREEMENT FOR OS X.*[AZ]' '/System/Library/CoreServices/Setup Assistant.app/Contents/Resources/en.lproj/OSXSoftwareLicense.rtf' 

Это, однако, также возвращает SOFTWARE LICENSE AGREEMENT FOR OS X часть вывода. Если вы просто хотите кодовое имя, вы можете передать его в sed, но не потребует каких-либо обратных ссылок, используя флаг страшного -E который BSD sed настолько печально известен:

 grep -oE 'SOFTWARE LICENSE AGREEMENT FOR OS X.*[AZ]' '/System/Library/CoreServices/Setup Assistant.app/Contents/Resources/en.lproj/OSXSoftwareLicense.rtf' | sed "s/SOFT.*OS X //" 

Лично я предпочитаю метод awk :

 grep -oE 'SOFTWARE LICENSE AGREEMENT FOR OS X.*[AZ]' '/System/Library/CoreServices/Setup Assistant.app/Contents/Resources/en.lproj/OSXSoftwareLicense.rtf' | awk -F 'OS X ' '{print $NF}' 

Чистое решение awk :

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

(Я уверен, что есть способ сделать это, не подключаясь к дополнительным awk-процессам, но я не профессионал.)

FWIW, вот неуклюжий хакерский путь; это, вероятно, не очень-то наоборот:

 grep "SOFTWARE LICENSE AGREEMENT FOR OS X" \ "/System/Library/CoreServices/Setup Assistant.app/Contents/Resources/en.lproj/OSXSoftwareLicense.rtf" \ | sed -E 's/^SOFTWARE LICENSE AGREEMENT FOR OS X (.+)\\$/\1/' 

Он работает, по крайней мере, на системах El Capitan и Mavericks, которые я проверил (и поэтому я бы взял на себя Йосемити). Он возвращает маркетинговое имя во всех кепках; например, EL CAPITAN и EL CAPITAN .

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

 curl -s http://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 http://support-sp.apple.com/sp/product?edid=$(sw_vers -productVersion) | xmllint --xpath '/root/configCode/text()' - 
  • Какую версию bash я запускаю
  • Сохранять сеанс ssh
  • Сервер HylaFax работает в OS X?
  • Перевод флагов GNU ps в стандартные флаги
  • Где я должен положить бесхозный лог-файл
  • Существуют ли какие-либо команды, которые позволят мне скопировать последнюю строку предыдущего вывода в буфер обмена?
  • Установите дату создания файла в дату его изменения на OSX
  • как отлаживать / исправлять сбои экрана при запуске
  • Почему vim возвращает ненулевой код выхода, если я выйду сразу после открытия?
  • Интернет в альпийском виртуальном боксе в macos
  • Как вы создаете пользователя без пароля?
  • Interesting Posts

    Что такое дескрипторы файлов, кроме 0, 1 и 2

    Как открыть полный экран gnome-terminal?

    простое разрешение хоста в локальной сети

    du -sh в новом каталоге дает разные результаты в разных местах

    При использовании UXRVT в цветах колонок Arch Linux работает только для пользователей root, но не для обычных пользователей

    Установить разрешение видео при загрузке?

    Обнаружение раскладки клавиатуры, набрав клавиши на archlinux

    Почему мой второй сеанс tmux не показан в ps aux или htop, но в tmux list-session это?

    Regex и шаблоны в командной строке ksh

    Не удается получить доступ к виртуальным терминалам после ручного запуска X-сервера

    Почему этот сценарий оболочки терпит неудачу в bash, но команды работают в SSH?

    Программно запускать фоновые задачи на разделенном экране?

    Копирование многих компакт-дисков на диск

    Можно ли обновить Manjaro до последней стабильной без полной установки?

    Как добавить другой префикс для каждой строки в grep-выходе?

    Linux и Unix - лучшая ОС в мире.