【发布时间】:2019-08-05 00:49:13
【问题描述】:
如果它在 Capitan 下运行,我需要使用一组参数运行 make,而在 Sierra 中运行其他参数。 换一种说法: 我在命令行中运行:
sw_version 产品名称:Mac OS X 产品版本:10.13.6
如何将 ProductVersion 的值传递给变量并检查它 如果当前操作系统版本
【问题讨论】:
如果它在 Capitan 下运行,我需要使用一组参数运行 make,而在 Sierra 中运行其他参数。 换一种说法: 我在命令行中运行:
sw_version 产品名称:Mac OS X 产品版本:10.13.6
如何将 ProductVersion 的值传递给变量并检查它 如果当前操作系统版本
【问题讨论】:
试试sw_vers 命令。在此处查看示例:
https://www.cyberciti.biz/faq/mac-osx-find-tell-operating-system-version-from-bash-prompt/
获取产品版本:
sw_vers | grep ProductVersion | cut -d':' -f2
比较解析后的值:
base_ver=10.13
ver=$(sw_vers | grep ProductVersion | cut -d':' -f2 | tr -d ' ')
if [ $(echo -e $base_ver"\n"$ver | sort -V | tail -1) == "$base_ver" ]
then
echo "older"
else
echo "newer"
fi
【讨论】:
ver=$(sw_vers | grep ProductVersion | cut -d':' -f2 | tr -d ' ' | rev| cut -d'.' -f2-| rev)
sw_vers -productVersion 提供与sw_vers | grep ProductVersion | cut -d':' -f2 相同的输出,只是获得它的方式更简洁