Ich weiß, wie ich die Mac OS X-Version über die GUI finde: Apple Menu (top left) > About This Mac
Gibt es einen Terminal-Befehl, der mir die Mac OS X-Version anzeigt?
Ich weiß, wie ich die Mac OS X-Version über die GUI finde: Apple Menu (top left) > About This Mac
Gibt es einen Terminal-Befehl, der mir die Mac OS X-Version anzeigt?
Antworten:
Sie haben einige Möglichkeiten:
sw_vers -productVersion
system_profiler SPSoftwareDataType
Beide tun, was Sie brauchen, und haben ein Ausgabeformat, das analysiert werden kann (wenn Sie danach suchen).
lsb_release
etwas in dieser Richtung zu suchen . Nie hätte ich diese Skripte gesehen. : D
Wenn Sie sich nur für die Hauptversion (10.10, 10.9) interessieren, können Sie dies tun
MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')
Ich benutze dies in einigen Skripten, die unterschiedliche Aufgaben ausführen müssen, wenn sie unter 10.8.x, 10.9.x und jetzt 10.10 ausgeführt werden.
sw_vers -productVersion | cut -d '.' -f 1,2
Wenn Sie die Versionsnummer von macOS basierend auf der semantischen Versionierung für die Skriptlogik aufteilen möchten, finden Sie hier einen kleinen Ausschnitt des von mir verwendeten Codes
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 je nach MacOS-Version verschiedene Befehle auszuführen. Dadurch wird die Steuerung bis zur Patch- oder Build-Version etwas präziser.
# 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