Come posso trovare il "nome descrittivo" del sistema operativo dalla shell / Terminal / bash?

5

Sochepossousaresw_verpertrovarequestainformazione:

ProductName:MacOSXProductVersion:10.14BuildVersion:18A353d

...esochepossotrovarealtrecosecomeunamepuòdarmialcunitipidiinformazionisulsistemaoperativoesystem_profilerSPSoftwareDataTypepuòdarmiulterioriinformazioni,mavogliotrovareilnome"amichevole", come "Mojave" nell'immagine mostrata sopra.

Come posso trovare il nome "amichevole", usando la shell / Terminal / bash / etc?

Finora il mio Google Fu non è riuscito a trovare alcuna soluzione. Tutti i risultati sembrano tornare a quei comandi che ho citato sopra, ma nessuno di questi mi dà le informazioni giuste.

Deve essere lì da qualche parte ... come posso trovarlo?

    
posta TJ Luoma 11.08.2018 - 21:32
fonte

4 risposte

4

Metodo offline

Questo comando dovrebbe trovare quello che stai cercando:

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

Si basa sulla risposta trovata qui . È testato per funzionare in High Sierra e dovrebbe funzionare a Mojave.

Metodo online

Puoi anche farlo online (che in realtà è quello che popola la finestra di dialogo "Informazioni su questo Mac" mostrato nella domanda):

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

Questo comando interrogherà il server di Apple con la tua versione di poduct e estrarrà il nome del sistema operativo dalla risposta XML. Per visualizzare la risposta XML completa, ometti semplicemente l'opzione --xpath "//root/configCode/text()" :

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

Risposta:

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

Questo è un esempio.

    
risposta data 12.08.2018 - 02:50
fonte
0

Bene, alla fine ho rinunciato a cercare una soluzione - forse ne troveremo una dopo che Mojave ha raggiunto la sua versione finale, ma ovviamente non sarà qualcosa che è facilmente utilizzabile su vecchie versioni di Mac OS X / OS X / macOS.

Quindi ho fatto un'alternativa all'idea di Marc Wilson (sopra) e ho creato uno script di shell che può emettere un elenco completo di tutti dei numeri di versione e dei loro "nomi amici" o ti permetterà di cercare un nome specifico, ad esempio, se vuoi solo sapere quale versione è stata chiamata "Yosemite".

Puoi trovare il mio script qui: link

Lascio la domanda aperta nel caso in cui troviamo una soluzione che non richiede uno script esterno.

    
risposta data 21.08.2018 - 18:57
fonte
-1

Puoi lanciare find e grep nella directory System

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

Non sono sicuro di cosa troverai.

    
risposta data 11.08.2018 - 22:47
fonte

Leggi altre domande sui tag