如何在 shell 脚本中确定 Mac OS X 版本?
Posted
技术标签:
【中文标题】如何在 shell 脚本中确定 Mac OS X 版本?【英文标题】:How to determine Mac OS X version in shell script? 【发布时间】:2019-08-05 00:49:13 【问题描述】:如果它在 Capitan 下运行,我需要使用一组参数运行 make,而在 Sierra 中运行其他参数。 换一种说法: 我在命令行中运行:
sw_version 产品名称:Mac OS X 产品版本:10.13.6
如何将 ProductVersion 的值传递给变量并检查它 如果当前操作系统版本
【问题讨论】:
【参考方案1】:试试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
【讨论】:
谢谢!如何将值 10.13 读取到脚本中的变量然后进行比较? 谢谢!注意: tere 是标志: sw_vers -productVersion 可能我们不需要 grep 顺便说一句,ver=10.13.6 这就是它比较不正确的原因。如何从版本中仅获得 10.13?或分别 10 和 13 然后比较 你的意思是它比较不正确?如果 ver=10.13.6 那么它比 10.13 更新,这是我的建议将输出的。无论如何,如果您只想以 $ver 获得 10.13,您可以尝试: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
相同的输出,只是获得它的方式更简洁以上是关于如何在 shell 脚本中确定 Mac OS X 版本?的主要内容,如果未能解决你的问题,请参考以下文章
如何使 zsh 在 Mac OS X(在 iTerm 中)上作为登录 shell 运行?
Mac OS X:如何在emacs客户端的shell中永久更改提示符(PS1的值)?
markdown 有关如何在Mac OS X上安装Fish shell的说明,包括Oh My Fish!。还包括几个有用的功能。