Saya tahu cara menemukan versi Mac OS X dari GUI: Apple Menu (top left) > About This Mac
Apakah ada perintah Terminal yang akan memberi tahu saya versi Mac OS X?
Saya tahu cara menemukan versi Mac OS X dari GUI: Apple Menu (top left) > About This Mac
Apakah ada perintah Terminal yang akan memberi tahu saya versi Mac OS X?
Jawaban:
Anda punya beberapa pilihan:
sw_vers -productVersion
system_profiler SPSoftwareDataType
Entah akan melakukan apa yang Anda butuhkan, dan akan memiliki format output yang dapat diuraikan (jika itu yang Anda cari).
lsb_release
atau sesuatu di sepanjang garis itu. Tidak akan pernah melihat skrip-skrip itu. : D
Jika yang Anda pedulikan adalah versi utama (10.10, 10.9), Anda dapat melakukannya
MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')
Saya menggunakan ini dalam beberapa skrip yang harus melakukan hal-hal yang berbeda jika dijalankan pada 10.8.x, 10.9.x dan sekarang 10.10.
sw_vers -productVersion | cut -d '.' -f 1,2
Jika Anda mencari untuk membagi nomor versi macOS berdasarkan versi semantik untuk logika skrip, berikut adalah potongan kecil kode yang saya gunakan
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
Anda dapat menggunakan variabel-variabel ini dalam logika skrip untuk menjalankan perintah yang berbeda berdasarkan versi macOS. Ini memberikan kontrol granular sedikit lebih ke patch atau versi build.
# 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