¿Cómo puedo encontrar el "nombre descriptivo" del sistema operativo desde el shell / Terminal / bash?

5

Séquepuedousarsw_verparaencontrarestainformación:

ProductName:MacOSXProductVersion:10.14BuildVersion:18A353d

...yséquepuedoencontrarotrascosascomounamemepuededaralgunostiposdeinformaciónsobreelsistemaoperativo,ysystem_profilerSPSoftwareDataTypemepuededarinformaciónadicional,peroquieroencontrarelnombre"amigable", como "Mojave" en la imagen que se muestra arriba.

¿Cómo puedo encontrar el nombre "amigable", usando el shell / Terminal / bash / etc?

Hasta ahora, mi Google fu no ha podido encontrar ninguna solución. Todos los resultados parecen volver a los comandos que mencioné anteriormente, pero ninguno de ellos me da la información correcta.

Tiene que estar allí en algún lugar ... ¿cómo puedo encontrarlo?

    
pregunta TJ Luoma 11.08.2018 - 21:32

4 respuestas

4

Método sin conexión

Este comando debe encontrar lo que estás buscando:

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)}'

Se basa en la respuesta encontrada aquí . Está probado para funcionar en High Sierra y debería funcionar en Mojave.

Método en línea

También puede hacer esto en línea (que es en realidad lo que aparece en el cuadro de diálogo "Acerca de esta Mac" que se muestra en la pregunta):

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

Este comando consultará el servidor de Apple con su versión de producto y extraerá el nombre del sistema operativo de la respuesta XML. Para ver la respuesta XML completa, simplemente omita la opción --xpath "//root/configCode/text()" :

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

Respuesta:

<?xml version="1.0" encoding="utf-8"?>
<root>
   <name>CPU Name</name>
   <configCode>macOS High Sierra</configCode>
   <locale>en_US</locale>
</root>
    
respondido por el Allan 12.08.2018 - 03:30
1
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

Eso es un ejemplo.

    
respondido por el Marc Wilson 12.08.2018 - 02:50
0

Bueno, finalmente dejé de buscar una solución. Tal vez encontremos una después de que Mojave llegue a su versión final, pero obviamente no será algo que se use fácilmente en versiones anteriores de Mac OS X / OS X / macOS.

Así que hice una alternativa a la idea de Marc Wilson (arriba) y creé un script de shell que puede generar una lista completa de todos de los números de versión y sus "nombres descriptivos" o le permitirá buscar un nombre específico, por ejemplo, si solo quiere saber qué versión se llamó "Yosemite".

Puedes encontrar mi script aquí: enlace

Dejaré la pregunta abierta en caso de que encontremos una solución que no requiera un script externo.

    
respondido por el TJ Luoma 21.08.2018 - 18:57
-1

Podría lanzar find y grep en el directorio System

find /System -type f -exec grep 'Mojave' {} +

No estoy seguro de lo que encontrarás.

    
respondido por el fd0 11.08.2018 - 22:47

Lea otras preguntas en las etiquetas