检查操作系统版本,然后发出命令,如果版本正确

Bry*_*son 5 macos bash operating-system sh osx-lion

我正在为Mac OS X Lion 10.7编写一个bash脚本,我想知道如何在bash中检查操作系统的版本,如果版本是10.7.1,那么它会执行命令并继续使用脚本和为不同的版本做同样的事情让我们说10.7.3然后它执行一个不同的命令然后用于10.7.1的命令?

E1S*_*ave 6

OS_Version(完整...例10.7.3)

system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}'
Run Code Online (Sandbox Code Playgroud)

要么

sw_vers -productVersion
Run Code Online (Sandbox Code Playgroud)

操作系统(简称......例10.7)

system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}' | sed "s:.[[:digit:]]*.$::g"
Run Code Online (Sandbox Code Playgroud)

要么

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

庆典:

#!/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
Run Code Online (Sandbox Code Playgroud)


zmc*_*ord 5

您需要sw_vers在OS X上使用该命令。它会打印一些人类可读的字符串,包括10.XX系统版本(sw_vers -productVersion)。您也可以使用uname来检查内核版本。如果您的脚本曾经移植到其他Unix变体,uname则可以在其中运行。