ฉันมักพบว่าตัวเองเป็น SSHing ในเครื่อง OS X หลายเครื่องและมันจะมีประโยชน์ถ้าฉันสามารถบอกได้ว่าเวอร์ชันของ OS XI นั้นเปิดอยู่เมื่อฉันทำสิ่งนั้น uname -a
ไม่ได้ผลเนื่องจากรุ่นเคอร์เนลของดาร์วินไม่สามารถเปลี่ยนแปลงได้ตลอดเวลากับระบบอื่น ๆ
ฉันมักพบว่าตัวเองเป็น SSHing ในเครื่อง OS X หลายเครื่องและมันจะมีประโยชน์ถ้าฉันสามารถบอกได้ว่าเวอร์ชันของ OS XI นั้นเปิดอยู่เมื่อฉันทำสิ่งนั้น uname -a
ไม่ได้ผลเนื่องจากรุ่นเคอร์เนลของดาร์วินไม่สามารถเปลี่ยนแปลงได้ตลอดเวลากับระบบอื่น ๆ
คำตอบ:
sw_vers
sw_vers
คำแนะนำของฉันคือการใช้ ตัวอย่างผลลัพธ์ที่ 10.6.4:
> sw_vers
ProductName: Mac OS X
ProductVersion: 10.6.4
BuildVersion: 10F569
คำตอบที่แนะนำsystem_profiler | grep 'System Version'
คือสิ่งที่ฉันพยายามใช้ในอดีต แต่มันมีปัญหา 2 ข้อ
grep
สำหรับ 'Serial Number' บน 10.6.4 คือ "Serial Number (ระบบ): ZNNNNNZNZZZ" ในขณะที่ 10.4.11 เป็น "Serial Number: ZNNNNZNZZZZ" - ความสำคัญคือความสามารถในการแยกวิเคราะห์และเพิ่ม " (ระบบ) "ชิ้นส่วนอาจมีปัญหาเว้นแต่คุณคาดหวังว่าจะมีการเปลี่ยนแปลงวิธีที่ง่ายที่สุดคือ:
$ sw_vers -productVersion
10.6.4
จาก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
มีประโยชน์โดยเฉพาะอย่างยิ่งเมื่อรีเซ็ตรหัสผ่านในโหมดผู้ใช้คนเดียวเนื่องจากวิธีการที่แตกต่างกันไปขึ้นอยู่กับรุ่นของ OS X ที่กำลังทำงานอยู่
grep -2 ProductVersion /System/Library/CoreServices/SystemVersion.plist
ติดตั้งเช่นดังนั้น: Aloha, Miles
ลองสิ่งนี้:
system_profiler | grep 'System Version'
คำตอบของ Mike Gray ดีกว่านี้ โปรดดูว่า
system_profiler SPSoftwareDataType
ชนะเมื่อsw_vers
แพ้
นี่คือบทความบล็อกพร้อมคำแนะนำวิธีรับเวอร์ชัน Mac OS X ใน Shell Script
OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
สามารถใช้เป็นsystem_profiler
system_profiler SPSoftwareDataType
ไม่จำเป็นต้อง grep ผ่านเอาท์พุทขนาดใหญ่
system_profiler
…` ``