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