在 Mac 上确定分辨率并将其用作 UNIX 脚本中的变量

Determine and Use Resolution as a Variable in UNIX script on Mac

我正在将 NetRestore 映像部署到多种 Macs:MacBooks,MacBook Pros,Mac Pros,iMacs 和 Mac 迷你。我有几个我想使用的自定义设计的登录屏幕,但 10.10 之前的所有内容都要求您知道显示器分辨率,否则登录将无法正确显示。

有没有办法将此代码的输出用作一系列 IF/THEN 语句的变量?

system_profiler SPDisplaysDataType |grep Resolution

正常输出是这样的

  Resolution: 2560 x 1440
  Resolution: 1920 x 1200
  Resolution: 1920 x 1200

(如果您有三个显示器...我更愿意使用第一个结果)。

或者有没有人知道如何创建自定义登录 window 背景和用户背景以在任何类型的 Mac 上以任何分辨率工作? (就像在系统偏好设置中 select "Fit to Screen" 时 OS 所做的那样)

谢谢!

要使用第一个结果,将高度和宽度存储在变量中,然后做一些事情,你可以像这样使用head

$ system_profiler SPDisplaysDataType | grep Resolution | head -1

然后你可以用 awk 截断分辨率并将其分配给 bash 变量:

$ resolution=$(system_profiler SPDisplaysDataType | grep Resolution | head -1 | awk -F: '{print }')

最后,您可以对 resolution 变量的值进行 if 声明,如下所示:

$ if [[ $resolution == " 2560 x 1440" ]]; then \
      echo match; \
  else \
      echo no; \
  fi
match