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

时间:2012-03-28 18:56:45

标签: macos bash operating-system osx-lion sh

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

3 个答案:

答案 0 :(得分:6)

OS_Version(完整...示例10.7.3)

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

OR

sw_vers -productVersion

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

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

OR

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

答案 1 :(得分:5)

你想要OS X上的sw_vers命令。它打印一些人类可读的字符串,包括10.X.X系统版本(sw_vers -productVersion)。您还可以使用uname来检查内核版本;如果您的脚本曾被移植到其他Unix变种uname将在那里工作。

答案 2 :(得分:2)

如果您只需要检查主要操作系统版本,请记住Darwin版本对应它,并且在bash中设置为一个shell变量,很容易强制转换为数值相当的整数。

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