it-swarm-vi.com

Làm cách nào tôi có thể biết phiên bản OS X nào tôi đang sử dụng từ dòng lệnh?

Tôi thường xuyên thấy mình SSH vào các máy OS X khác nhau và sẽ hữu ích nếu tôi có thể biết phiên bản OS X nào tôi đã sử dụng khi tôi làm điều đó. uname -a không hoạt động tốt, vì các phiên bản kernel của Darwin không luôn thay đổi với phần còn lại của hệ thống.

69
Benjamin Pollack

sw_vers

Đề nghị của tôi là sử dụng sw_vers. Ví dụ đầu ra vào ngày 10.6.4:

> sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.6.4
BuildVersion:   10F569

Câu trả lời gợi ý system_profiler | grep 'System Version' là những gì tôi đã cố gắng sử dụng trong quá khứ, nhưng nó có 2 vấn đề.

  1. Nó chậm vì nó tạo ra một hệ thống đầy đủ system_profiler của máy, thu thập tất cả thông tin kiểm kê phần cứng và phần mềm.
  2. Đầu ra của system_profiler đã thay đổi theo thời gian. ví dụ. đầu ra của grep cho 'Số sê-ri' trên 10.6.4 là "Số sê-ri (hệ thống): ZNNNNNZNZZZ", trong khi vào ngày 10.11.11, đó là "Số sê-ri: ZNNNNZNZZZZ" - tầm quan trọng là khả năng phân tích cú pháp của đầu ra và phần "(hệ thống)" có thể có vấn đề trừ khi bạn mong đợi sự thay đổi.
79
Mike Gray

Cách dễ nhất là:

$ sw_vers -productVersion
10.6.4

Từ http://tinyapps.org/blog/mac/201008140700_os_x_version_terminal.html :

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.6.4
BuildVersion:  
10F569
$ sw_vers -productVersion
10.6.4

Đặc biệt tiện dụng khi đặt lại mật khẩu ở chế độ người dùng, vì phương thức này thay đổi dựa trên phiên bản OS X nào đang chạy.

38
Benjamin Oakes

Thử cái này:

 system_profiler  | grep 'System Version'

Câu trả lời của Mike Gray tốt hơn thế này. Xin vui lòng xem điều đó

8
kbyrd

Dưới đây là một bài viết trên Blog có hướng dẫn Cách lấy phiên bản Mac OS X trong Shell Script

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
6
Larry Smithmier

Các system_profiler có thể được chạy dưới dạng system_profiler SPSoftwareDataType. Không cần phải grep thông qua sản lượng lớn.

3
user242114