Tôi biết cách tìm phiên bản Mac OS X từ GUI: Apple Menu (top left) > About This Mac
Có lệnh Terminal nào sẽ cho tôi biết phiên bản Mac OS X không?
Tôi biết cách tìm phiên bản Mac OS X từ GUI: Apple Menu (top left) > About This Mac
Có lệnh Terminal nào sẽ cho tôi biết phiên bản Mac OS X không?
Câu trả lời:
Bạn có một vài lựa chọn:
sw_vers -productVersion
system_profiler SPSoftwareDataType
Hoặc sẽ làm những gì bạn cần và sẽ có định dạng đầu ra có thể phân tích cú pháp (nếu đó là những gì bạn đang theo đuổi).
lsb_release
hoặc một cái gì đó dọc theo những dòng đó. Không bao giờ có thể phát hiện ra các kịch bản. : D
Nếu tất cả những gì bạn quan tâm là phiên bản chính (10.10, 10.9), bạn có thể làm
MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')
Tôi sử dụng điều này trong một vài tập lệnh phải làm những việc khác nhau nếu chạy trên 10.8.x, 10.9.x và bây giờ là 10.10.
sw_vers -productVersion | cut -d '.' -f 1,2
Nếu bạn đang tìm cách phân chia số phiên bản macOS dựa trên phiên bản ngữ nghĩa cho logic tập lệnh, thì đây là một đoạn mã nhỏ tôi sử dụng
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
Bạn có thể sử dụng các biến này trong logic tập lệnh để chạy các lệnh khác nhau dựa trên phiên bản macOS. Điều này cho phép kiểm soát chi tiết hơn một chút xuống bản vá hoặc phiên bản xây dựng.
# 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