2012-03-28 43 views
5

tôi đang viết tập lệnh bash cho Mac OS X Lion 10.7 và tôi muốn biết cách tôi có thể kiểm tra phiên bản của hệ điều hành và nếu phiên bản nói 10.7.1 sau đó nó làm một lệnh và tiếp tục với kịch bản và làm điều tương tự cho một phiên bản khác nhau cho phép nói 10.7.3 sau đó nó hiện một lệnh khác nhau sau đó lệnh được sử dụng cho 10.7.1?Kiểm tra phiên bản OS sau đó ra lệnh nếu phiên bản chính xác

Trả lời

4

Bạn muốn lệnh sw_vers trên OS X. Nó in một số chuỗi có thể đọc được bằng con người, bao gồm phiên bản hệ thống 10.X.X (sw_vers -productVersion). Bạn cũng có thể sử dụng uname để kiểm tra phiên bản hạt nhân; nếu kịch bản của bạn đã từng được chuyển sang các biến thể Unix khác, uname sẽ hoạt động ở đó.

+0

cảm ơn. bệnh thử này ra –

5

OS_Version (full ... Ví dụ 10.7.3)

system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}' 

HOẶC

sw_vers -productVersion 

OS (viết tắt ... ví dụ 10,7)

system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}' | sed "s:.[[:digit:]]*.$::g" 

HOẶC

OS_Version=$(OS (short… example 10.7) | sed "s:.[[:digit:]]*) 

bash:

#!/bin/bash 

# Use one of the examples given above to create the OS_Version variable 

if [[ ${OS_Version} == 10.7.3 ]]; then 
    echo "Operating System is a match... will continue on." 
else 
    echo "Operating System is NOT a match... will NOT continue." 
fi 
+0

Cảm ơn bạn đã sửa chữa và tip. – E1Suave

+1

Tôi đã phải sử dụng $ 5 thay vì $ 6. – funroll

+0

'sw_vers -productVersion' nên được cho là câu trả lời đầu tiên. Từ kinh nghiệm cũng như đọc các bình luận, nó tránh phải lo lắng về '$ 5' so với' $ 6' và nó có khả năng mở rộng hơn – tresf

1

Nếu bạn chỉ cần kiểm tra phiên bản hệ điều hành chính, ghi nhớ các phiên bản Darwin tương ứng với nó, và trong vòng bash được thiết lập để một biến vỏ đó là dễ dàng để ép buộc đến một số nguyên có thể so sánh được bằng số.

if [[ ${OSTYPE:6} -ge 13 ]]; then 
    echo "At least 10.9, so feeling fine."; 
else 
    echo "Time to put the old cat to sleep."; 
fi 
Các vấn đề liên quan