Macos 检查操作系统的版本,如果版本正确,则发出命令
我正在为Mac OS X Lion 10.7编写一个bash脚本,我想知道如何在bash中检查操作系统的版本,如果版本是10.7.1,那么它会执行一个命令并继续执行脚本,对不同的版本执行相同的操作,比如10.7.3,然后它会执行不同的命令,然后是用于10.7.1?您希望在OS X上使用Macos 检查操作系统的版本,如果版本正确,则发出命令,macos,bash,operating-system,osx-lion,sh,Macos,Bash,Operating System,Osx Lion,Sh,我正在为Mac OS X Lion 10.7编写一个bash脚本,我想知道如何在bash中检查操作系统的版本,如果版本是10.7.1,那么它会执行一个命令并继续执行脚本,对不同的版本执行相同的操作,比如10.7.3,然后它会执行不同的命令,然后是用于10.7.1?您希望在OS X上使用sw\u vers命令。它打印一些人类可读的字符串,包括10.X.X系统版本(sw\u vers-productVersion)。您还可以使用uname检查内核版本;如果您的脚本曾经被移植到其他Unix变体,una
sw\u vers
命令。它打印一些人类可读的字符串,包括10.X.X系统版本(sw\u vers-productVersion
)。您还可以使用uname
检查内核版本;如果您的脚本曾经被移植到其他Unix变体,uname将在那里工作。OS\U版本(完整…示例10.7.3)
或
OS(简称…示例10.7)
或
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
如果只需要检查主操作系统版本,请记住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
谢谢你的修复和提示。我不得不用5美元而不是6美元。
sw\u verse-productVersion
应该是第一个答案。从经验和阅读评论来看,它避免了担心$5
与$6
之间的差异,而且更具可扩展性
system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}' | sed "s:.[[:digit:]]*.$::g"
OS_Version=$(OS (short… example 10.7) | sed "s:.[[:digit:]]*)
#!/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
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