2009-11-25 12:48:57 +0000 2009-11-25 12:48:57 +0000
155
155

Wie kann man die Mac OS X-Version über Terminal herausfinden?

Ich weiß, wie ich die Mac OS X-Version über die GUI herausfinden kann: Apple Menu (top left) > About This Mac

Gibt es einen Terminal-Befehl, der mir die Mac OS X-Version mitteilt?

Antworten (4)

216
216
216
2009-11-25 14:13:02 +0000

Sie haben ein paar Optionen:

sw_vers -productVersion 

system_profiler SPSoftwareDataType

Beide tun, was Sie brauchen, und haben ein Ausgabeformat, das geparst werden kann (wenn es das ist, was Sie wollen).

7
7
7
2014-02-16 21:28:28 +0000

Der Befehl sw_vers zeigt die Version an.

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

4
4
4
2014-10-20 19:59:27 +0000

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

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

Ich verwende dies in einigen Skripten, die unterschiedliche Dinge tun müssen, wenn sie auf 10.8.x, 10.9.x und jetzt 10.10 laufen.

2
2
2
2017-10-14 02:07:02 +0000

Wenn Sie die macOS-Versionsnummer basierend auf semantischer Versionierung für die Skriptlogik aufteilen möchten, finden Sie hier einen kleinen Codeschnipsel, 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 granularere Kontrolle bis hin zur 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