ฉันรู้วิธีหาเวอร์ชั่น Mac OS X จาก GUI: Apple Menu (top left) > About This Mac
มีคำสั่ง Terminal ที่จะบอกเวอร์ชั่นของ Mac OS X หรือไม่?
ฉันรู้วิธีหาเวอร์ชั่น Mac OS X จาก GUI: Apple Menu (top left) > About This Mac
มีคำสั่ง Terminal ที่จะบอกเวอร์ชั่นของ Mac OS X หรือไม่?
คำตอบ:
คุณมีตัวเลือกน้อย:
sw_vers -productVersion
system_profiler SPSoftwareDataType
ทั้งจะทำสิ่งที่คุณต้องการและจะมีรูปแบบผลลัพธ์ที่แยกได้ (ถ้านั่นคือสิ่งที่คุณหลัง)
lsb_release
หรือบางสิ่งบางอย่างตามสายเหล่านั้น จะไม่พบสคริปต์เหล่านั้น : D
หากสิ่งที่คุณใส่ใจคือรุ่นใหญ่ (10.10, 10.9) คุณสามารถทำได้
MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')
ฉันใช้สิ่งนี้ในสองสามสคริปต์ที่ต้องทำสิ่งต่าง ๆ ถ้าทำงานบน 10.8.x, 10.9.x และตอนนี้ 10.10
sw_vers -productVersion | cut -d '.' -f 1,2
หากคุณต้องการแยกหมายเลขรุ่น macOS โดยอิงจากการกำหนดเวอร์ชันแบบ semantic สำหรับตรรกะของสคริปต์นี่คือตัวอย่างรหัสเล็ก ๆ ที่ฉันใช้
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
คุณสามารถใช้ตัวแปรเหล่านี้ในลอจิกสคริปต์เพื่อเรียกใช้คำสั่งต่าง ๆ ตามเวอร์ชันของ macOS สิ่งนี้ให้การควบคุมที่ละเอียดยิ่งขึ้นไปจนถึงแพทช์หรือบิวด์เวอร์ชัน
# 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