Frage Wie finde ich Mac OS X Version von Terminal?


Ich weiß, wie man Mac OS X Version von der GUI findet: Apple Menu (top left) > About This Mac

Gibt es einen Terminal-Befehl, der mir Mac OS X-Version sagen wird?


136
2017-11-25 12:48


Ursprung




Antworten:


Sie haben ein paar Möglichkeiten:

sw_vers -productVersion 

system_profiler SPSoftwareDataType

Entweder tun Sie, was Sie brauchen, und Sie haben ein Ausgabeformat, das analysiert werden kann (wenn Sie das wollen).


196
2017-11-25 14:13



sw_vers ist alles was ich brauche. Vielen Dank! :) - Željko Filipin
Die erste gibt Ihnen nur die OS-Version (dh "10.7.5"). Der zweite gibt Ihnen viele zusätzliche Informationen wie 32/64-Bit. - Kent
Schön! Ich wollte nach etwas suchen lsb_release oder etwas in dieser Richtung. Hätte niemals diese Skripte entdeckt. : D - Alastair


Der Befehl sw_vers Zeigt die Version an.

Für ältere Mac OS finden Sie nützliche Informationen in Wikipedia.


7
2018-02-16 21:28





Wenn Ihnen nur die Hauptversion (10.10, 10.9) wichtig ist, können Sie das tun

MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')

Ich benutze dies in ein paar Skripten, die verschiedene Dinge tun müssen, wenn sie auf 10.8.x, 10.9.x und jetzt 10.10 laufen.


4
2017-10-20 19:59



Einfacher: sw_vers -productVersion | cut -d '.' -f 1,2 - waldyrious


Wenn Sie die macOS-Versionsnummer basierend auf semantischer Versionierung für Skriptlogik aufteilen möchten, hier ein kleiner Ausschnitt aus Code, den ich verwende

product_version=$(sw_vers -productVersion)
os_vers=( ${product_version//./ } )
os_vers_major="${os_vers[0]}"
os_vers_minor="${os_vers[1]}"
os_vers_patch="${os_vers[2]}"
os_vers_build=$(sw_vers -buildVersion)

# Sample semver output
echo "${os_vers_major}.${os_vers_minor}.${os_vers_patch}+${os_vers_build}"
# 10.12.6+16G29

Sie können diese Variablen in der Skriptlogik verwenden, um verschiedene Befehle basierend auf der Version von macOS auszuführen. Dies gibt eine etwas detailliertere Kontrolle über die Patch- oder Build-Version.

# Sample bash code
if [[ ${os_vers_minor} -ge 11 ]]; then
    DMG_FORMAT=ULFO
elif [[ ${os_vers_minor} -ge 4 ]]; then
    DMG_FORMAT=UDBZ
else
    DMG_FORMAT=UDZO
fi

2
2017-10-14 02:07