I know how to find Mac OS X version from GUI: Apple Menu (top left) > About This Mac
Is there a Terminal command that will tell me Mac OS X version?
4 Answers
You have a few options:
sw_vers -productVersion
system_profiler SPSoftwareDataTypeEither will do what you need, and will have an output format that's parseable (if that's what you're after).
2The command sw_vers shows the version.
For older Mac OS's you can find useful information in Wikipedia.
If all you care about is the major version (10.10, 10.9), you can do
MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')I use this in a couple of scripts that have to do different things if run on 10.8.x, 10.9.x and now 10.10.
1If you're looking to split the macOS version number based on semantic versioning for script logic, here is a small snip of code I use
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+16G29You can use these variables in script logic to run different commands based on the version of macOS. This gives slightly more granular control down to the patch or 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